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:如果可以,请帮我重新命名主题,使其更具体。感谢您的帮助。
答案 0 :(得分:5)
使用fscanf
时,如果在格式字符串中指定一个或多个空格字符,它将从输入中跳过任意数量的空格。你指定的空白字符数或者数量没有区别。因此,在这种情况下,当您将\r\n
放入格式字符串时,它实际上会跳过换行符序列和下一行开头的空格。
答案 1 :(得分:1)
来自fscanf的文档...
格式字符串由空格字符组成(任何单个字符) 格式字符串中的空格字符占用所有可用字符 来自输入的连续空白字符,
http://en.cppreference.com/w/c/io/fscanf
“\ n”是一个空格字符,所以它占用了所有的空格,直到“Foobar”中的F