在输入的格式都是一样的情况下,如何读取每一行的数据?
假设输入为
abc-1234-efg
ddc-4567-fgh
……
如此往下,在不告知到底有多少行的情况下,想要扫描出每行的数据。
现在我遇到问题是当所有数据扫描完后如何终止扫描。
因为输入的结尾并不是EOF而是‘\n’
所以我想设一个while循环停止条件是getchar()得到的值为‘\n‘。
但是又因为每一行输入的结尾都是‘\n’
所以停止条件就会扫到第一行就停止,后面的就扫不到了。变得矛盾起来。
我又想到,如果循环停止是
getchar != ‘\n’ && (!scanf(“%s”,string))
即getchar得到换行符后,发现再往后扫描,扫描不到字符串的情况。
我这样用scanf 作为条件,遇到文件结尾的情况下,能停止循环,结束扫描数据吗?
假设输入为
abc-1234-efg
ddc-4567-fgh
……
如此往下,在不告知到底有多少行的情况下,想要扫描出每行的数据。
现在我遇到问题是当所有数据扫描完后如何终止扫描。
因为输入的结尾并不是EOF而是‘\n’
所以我想设一个while循环停止条件是getchar()得到的值为‘\n‘。
但是又因为每一行输入的结尾都是‘\n’
所以停止条件就会扫到第一行就停止,后面的就扫不到了。变得矛盾起来。
我又想到,如果循环停止是
getchar != ‘\n’ && (!scanf(“%s”,string))
即getchar得到换行符后,发现再往后扫描,扫描不到字符串的情况。
我这样用scanf 作为条件,遇到文件结尾的情况下,能停止循环,结束扫描数据吗?
