我有一个文件BasicHTML
,其中包含两行。
test.txt
这是C代码。
123456789
abcdefghi
我很困惑为什么行中有10个字符(FILE* fp;
char str[20];
fp = fopen("test.txt", "r");
printf("%d", ftell(fp)); // 0
printf("%s", fgets(str, sizeof(str), fp)); // 123456789\n
printf("%d", ftell(fp)); // 11
),但是位置增加了11个字符。
[已编辑]
感谢评论。但是我不知道如何以正确的格式更新已经澄清的内容。我在这里注意到我在这个问题上做错了。
1.在Windows中,"123456789\n"
被存储为'\n'
,因此它返回11。
2. "\r\n"
会将fp = fopen("test.txt", "r")
转换回"\r\n"
。用二进制打开文件,'\n'
和"rb"
应该读为fgets
。
3.我必须在格式字符串中使用"123456789\r\n"
,因为%ld
的返回类型为ftell
。