gpt4 book ai didi

C:从文件中读取数字和字符串

转载 作者:行者123 更新时间:2023-11-30 17:36:19 25 4
gpt4 key购买 nike

我必须从 txt 文件中读取数据,如下所示:

  • 11 27 12 OY-5158
  • 11 28 12 WM-2037
  • 12 29 46 PY-6651

最后一部分必须是字符串,它始终有 7 个字符。

我尝试过这个:

#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
int sorok;
char s[1000]; //Max number of lines

FILE *f = fopen("jarmu.txt","r");

while( (fgets(s, sizeof(s), f)) != NULL) {
sorok++;
}

int idopont[sorok][3];
char rendszam[sorok][7];

while (!feof(f))
{
for(i=0; i<sorok; i++)
fscanf(f,"%d %d %d %7s",&idopont[i][0],&idopont[i][1],&idopont[i][2],&rendszam[i]);
}

for(i=0; i<sorok; i++)
printf("%d %d %d %7s\n",idopont[i][0],idopont[i][1],idopont[i][2],rendszam[i]);

return 0;
}

但是这不起作用。你能帮我一下吗?

最佳答案

你的问题很简单:

目前,您读取文件一次以获取行数,然后再次解析这些行。你忘了中间倒带。使用:fseek(f, 0, SEEK_SET);

另外,不要忘记删除您的 while(!feof(f))循环包含体。

或者,仅读取文件一次并直接解析行。

下一个问题点:C 使用以 0 结尾的字符串,并且您没有为结尾 0 保留空间。也请更正这一点。

最终错误:fscanf(f,"%d %d %d %7s",&idopont[i][0],&idopont[i][1],&idopont[i][2],&rendszam[i]);应该是fscanf(f,"%d %d %d %7s",&idopont[i][0],&idopont[i][1],&idopont[i][2],rendszam[i]); :类型应该是 FILE*, char*, int*, int*, int*, char* 。最后一个是char** .

关于C:从文件中读取数字和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22731406/

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