通过scanf逐行读取

Reading by scanf line by line

我需要使用 scanf 读取输入到标准输入的文本文件。我想逐行读取文本文件,然后将行中的每个值分配给它们的值。

这是文本文件
38 5 35 3099 48 222 16 4 1 Ronaldo 2 33 2572 22 97 7 6 0 Neymar 1 38 3375 43 191 18 4 0 Messi 13 37 2472 22 80 1 6 0 Griezmann

第一行是最大游戏数。 然后我想阅读下一行并将其分配给变量。像数字 = 5,目标 = 35,.... 然后到下一行并以相同的方式阅读。人数 = 2,目标 = 33,....

我该怎么做?

不要使用scanf(),它既不灵活也不可靠。

而是使用 fgets() to read the entire line from standard input and then tokenize the input using strtok()。这将为您提供更强大的算法。

如果需要,您可以使用 strtol(), strtod() 等将标记转换为 intdouble

您可以使用fscanf从文本文件中读取(因为您有固定格式的数据)-

char name[100];
int a,b,c,d,e,f,g,h;           // sorry for such variable names 
while(fscanf(fp,"%d %d %d %d %d %d %d %d %99s",&a,&b,&c,&d,&e,&f,&g,&h,name)==9)   // fp be file pointer