gpt4 book ai didi

c - 从文件中读取数据并将值存储在 C 中

转载 作者:行者123 更新时间:2023-11-30 19:23:44 24 4
gpt4 key购买 nike

我有一个包含很多行的文件,如下所示:

1:458:187:131
1:1124:384:63
1:2300:514:31
2:95:111:12
...

在每次阅读时,我都会使用一个函数来使用这些值,以便在下一次迭代中可以将其存储在同一个变量中。

然后我还有其他带字符串的

6:City1:46:795:825:17134:8398:616:323:8791:5873
7:City near London:507:1032
8:NY:2595:64:193:684:1258:341:1125:1956:5079

与之前的过程相同。有什么帮助吗?

void readst()
{

int nn1, nn2,nn3,nn4;
char str1[200], str2[200];
char str[200];
FILE *fp;

fp = fopen("file.txt", "r");
if(!fp) return 1; // bail out if file not found
while(fgets(str,sizeof(str),fp) != NULL)
{
// strip trailing '\n' if it exists
int len = strlen(str)-1;
if(str[len] == '\n')
str[len] = 0;
int n1, n2,n3,n4;
char str1[200], str2[200];

sscanf(str,"%d:%d:%d:%d",&nn1,&nn2,&nn3,&nn4);
printf("%d\n%d\n%d\n%d\n",nn1,nn2,nn3,nn4);

printf("\n%s", str);
}
fclose(fp);
}

最佳答案

像这样的事情应该可以解决问题:

#include <stdio.h>

int main (void) {
static const char filename[] = "file.txt";
FILE *file = fopen ( filename, "r" );
if (file != NULL) {
char line [128];
while (fgets(line, sizeof line, file) != NULL) {
fputs(line, stdout);
}
fclose(file);
}
else {
perror(filename);
}
return 0;
}

您可以在 while 循环内操作变量。

分割字符串:

p = strtok("a:b:c", ":");
while (p != NULL) {
printf("%s\n", p);
p = strtok(NULL, ":");
}

关于c - 从文件中读取数据并将值存储在 C 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com