我正在尝试从500Mb文本文件中读取多个整数,其中整数是格式
1000002 1 55
1000002 1000006 33
1000002 1000007 8
1000002 1000009 144
当我尝试读取整数时,我遇到的问题是程序没有读取整个文件和它读取的文件,它似乎不是正确的值我的代码是
FILE *file;
file = fopen("user_artist_data.txt", "r");
int User_ID, artist_ID, Play_Count = 0;
int check = 0;
while(fscanf(file, "%d %d %d", &User_ID, &artist_ID, &Play_Count) != 0)
{
check++;
printf("%d %d %d\n", User_ID, artist_ID, Play_Count);
}
fclose(file);
你可以帮我修理我的代码。 谢谢
答案 0 :(得分:1)
仔细阅读 fscanf(3)的文档(您可能应该多次阅读)。
然后你就会明白你可能应该编码
while(fscanf(file, " %d %d %d", &User_ID, &artist_ID, &Play_Count) == 3)
(注意空格按fscanf
的新行处理
fgets
不可用,则为getline
),然后使用sscanf(3)解析每一行。 %n
转换规范可能非常有用。
不要忘记编译所有警告和调试信息(例如gcc -Wall -Wextra -g
如果使用GCC ...)并使用调试器(例如gdb
)