您好,我有一个程序,如果在文本文件第一行的开头有一个 @ 需要忽略它,您如何跳转到文件的下一行?忽略@之后的所有内容? 例如:
@1234
5
我想打印 5,其余忽略不计。
如果后面没有任何内容,我只能跳过 @
while (a == '@' || a == '\r'|| a == '\n') {
fscanf(inp, "%c", &a);
}
最佳答案
至于你之前的问题,如果你想忽略带有初始 @
的注释行,强烈建议使用 逐行阅读文件fgets()
并直接处理非注释行,同时忽略注释行。
使用 fscanf
执行此操作实际上很重要,因为根据您的格式行,可能会或可能不会使用换行符。
如果您在一行的开头并且想在忽略注释行的同时读取下一个字符,请执行以下操作:
int c; // Must be int to accommodate for EOF.
while ((c = getc(inp)) == '@') {
while ((c = getc(inp)) != EOF && c != '\n')
continue;
}
// Here c contains the first char from a non comment line or EOF.
关于c - 跳到文件的下一行忽略内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580871/