Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
我正在使用
第一个格式说明符最多读取一个不是换行符的字符,并将其存储在字符串
@AnT在注释中指出,对于以换行符开头的文本文件,此方法将失败,并提出了解决办法:在禁止换位的同时读取换行的循环之前调用
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
我正在使用
fscanf()
函数读取多行文件。我想忽略换行符,但不忽略文件中可能存在的其他空白字符。我怎样才能最好地做到这一点? 最佳答案
我认为这符合您的要求:
char ch[2];
while (fscanf(fp, "%1[^\n]%*[\n]", ch) == 1)
putchar(ch[0]);
第一个格式说明符最多读取一个不是换行符的字符,并将其存储在字符串
ch
中,第二个格式符读取换行符,但禁止赋值。该循环的结果是打印文件中的所有字符,跳过换行符,直到EOF
。@AnT在注释中指出,对于以换行符开头的文本文件,此方法将失败,并提出了解决办法:在禁止换位的同时读取换行的循环之前调用
fscanf()
。改进的代码是:char ch[2];
fscanf(fp, "%*[\n]");
while (fscanf(fp, "%1[^\n]%*[\n]", ch) == 1)
putchar(ch[0]);
关于c - 使用fscanf()忽略换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40559233/
10-13 09:42