我有5行输入,我只关心使用其中两行(它们是在文本文件中):
1 -- input function one
L 123.0 21.0
2 -- input function 2
2.0 3.0
3.0 2.0
我想从第一行使用 1 ,然后我想跳到第2行。
在我使用第2行后,我想在第3行读取数字 2 。
我想再次跳到行尾并使用第四行和第五行。
我只能使用getchar(),scanf,if和while来执行此操作。 这是我的代码的一部分,我只是想让它工作。
int
main(int argc, char *argv[]) {
char ch;
int j;
if(scanf("%d", &j) == 1){
printf("Got %d lines\n", j);
}
scanf("%c", &ch);
printf("%c", ch);
return 0;
}
如果我把
scanf("%d -- input function one\n", &j)
然后我最终到达了我想去的地方,但仅限于" - ' stuff' "是scanf中%d之后的确切短语。
我能做些什么来跳到行尾?得到输出:
获得1行
→
答案 0 :(得分:3)
这是我的建议。
// Read 1 from the first line.
if(scanf("%d", &j) == 1){
printf("Got %d lines\n", j);
}
// Read the rest of the line but don't
// save it. This is the end of the first line
scanf("%*[^\n]s");
// Read the next line but don't save it.
// This is the end of the second line.
scanf("%*[^\n]s");
// Now read the 2 from the third line.
if(scanf("%d", &j) == 1){
printf("Got %d lines\n", j);
}
// Read the rest of the line but don't
// save it. This is the end of line 3
scanf("%*[^\n]s");
// Now the fourth line can be read.
<强>更新强>
行
scanf("%*[^\n]s");
应该是
scanf("%*[^\n]s\n");
也是为了消费'\n'
。