c语言 windows下txt换行是/n /r 俩个字符,但为什么检测不到/r

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

void main()
{

FILE *fp = fopen("C:\\Users\\lenovo\\Desktop\\00.txt", "r");
int numf=0;
int numn=0;
int numr = 0;
char ch;
while (( ch = fgetc(fp)) != EOF)
{
if (ch == '\n')
numn++;
else if (ch == '\r')
numr++;
else if (ch == '*')
numf++;
}

printf("*=%d,\\n=%d,\\r=%d", numf,numn,numr);
getchar();
}

如果没有记错的话,windows的机制是在你使用“r"的时候,系统会将\r\n 转换为\n, 如果采用二进制方式就不会这样了。希望对你会有帮助追问

二进制方式是指什么

追答

就是使用'rb" 而不是“r"方式打开文件

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-26
请用二进制方式读取文件 不要用文本方式读取本回答被网友采纳
相似回答
大家正在搜