第一个代码片段
fscanf (Fp, "%d",&Variable);
fseek (Fp, 2, SEEK_CUR); // Ignore <Enter>: 0x0D 0x0A (Windows Platform)
fread (&String, sizeof(char), Length, Fp);
第二个代码片段
fscanf (Fp, "%d\r\n",&Variable); // Ignore <Enter>: 0x0D 0x0A (Windows Platform)
fread (&String, sizeof(char), Length, Fp);
输入文件
13
Foobar
第一个代码可以得到Foobar前的四个空白,但是第二个不能。
为什么?谢谢。
PS:如果可以,请帮我重命名主题,使其更具体。感谢您的帮助。
最佳答案
使用 fscanf
时,如果您在格式字符串中指定一个或多个空白字符,它将跳过输入中的任意数量的空白字符。您指定了哪些空白字符或指定了多少空白字符都没有区别。所以在这种情况下,当您将 \r\n
放入格式字符串时,它实际上会跳过换行序列和下一行开头的空格。
关于c - 为什么这两个不相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375997/