c - 为什么这两个不相等?

标签 c file-io

第一个代码片段

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/

相关文章:

javascript - 使用 jQuery 返回 XML 文件内容

c - 词法分析器输出问题

c - 打印我们的字符结构和长度

c - 如何打印大小未知的int数组

pthread_cond_signal 可以唤醒多个线程吗?

java - 如何使用 FileReader 而不是使用 BufferReader

ruby - 在指定目录下创建文件

c++ - 如何在 C++ 中使用 ifstream 打开和读取文件?

file-io - 重定向标准输出流

c - "round"time_t 到天/小时?