假设我有一个要阅读的文件:
//it may contain more than 2 lines
12 6
abadafwg
现在假设我已经读过这样的第一行:
char input[999];
while(!feof(fpin))
{
fscanf(fpin, " %[^\n]", input);
//do something here with these numbers
//should do something here to read 2nd line
}
这是我的问题,如何阅读该文件的第二行? 请帮助QAQ
答案 0 :(得分:0)
不要使用fscanf(fpin, "%[^\n]", input)
,而是推荐fgets()
,因为这会阻止缓冲区溢出。您可以将这个用于两个行,然后根据需要进行解析。
if (fgets(input, sizeof(input), fpin) == 0) {
// handle error, EOF
}
int i[2];
int result = sscanf(input,"%d %d", &i[0], &i[1]);
switch (result) {
case -1: // eof
case 0: // missing data
case 1: // missing data
case 2: // expected
}
if (fgets(input, sizeof(input), fpin) == 0) {
// handle error, EOF
}
// use the 'abadfwg just read
答案 1 :(得分:0)
您提供的代码将读取程序中的所有行(while循环的每次迭代一行),而不仅仅是第一行。 [我刚刚测试过]