我正在尝试使用FILE * fp,fgets
读取文件 while( (ch=getc(fp)) != '\n' ){
printf("%d\n",ch);
}
奇特之处在于,此代码还会打印换行符。如果没有检测到“\ n”,是不是while循环说要打印?我怎么能这样做它不打印“\ n”。感谢
答案 0 :(得分:1)
如果正在从文件中读取字符串处理(文本文件),请确保以文本模式打开文件。
在使用"\n"
以外的其他内容的系统上以文本模式打开的文件表示行尾(如"\r\n"
或"\n\r"
或"\r
)会将其转换为"\n"
。关于字节顺序标记(BOM或文件结束字符(^ Z))也可能发生其他处理。
FILE *fp;
fp = fopen("fielanme", "r");
OTOH,如果打开想要以二进制文件打开文件,请为变量行结尾做好准备。
FILE *fp;
fp = fopen("fielanme", "rb");