用力咬牙耳朵疼:C语言问题,关于换行符的显示问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 03:12:31
我在程序中调用 fprintf(fp2,"there are %d charactors:\n",n); 向文件fp2中写入数据。结果我用记事本查看fp2时\n显示为一个黑色方块。
怎样才能让记事本也显示为换行啊???

我的记事本上没有显示符号.

记事本用老DOS定义.CRLF是回车换行.
CR -- "\r", LF -- "\n".
所以用"\r\n" 试试.
fprintf(fp2,"there are %d charactors:\r\n",n);

例如:
#include <stdio.h>
#include <stdlib.h>
FILE * fp2;
main()
{
int n = 12345;
fp2 = fopen("abc.txt","w");
fprintf(fp2,"there are %d charactors:\r\n",n);
fclose(fp2);
printf("\007Output in abc.txt");
exit(0);
}

\n是换行
\r是回车

“回车换行”是“回车”加“换行”。

换行好理解,但什么叫“回车”呢?它和“换行”又有什么关系?

原来,“回车换行”的概念源于早先的打字机。类似于现在打印机中有一个打印头,这个打印头平常停在打印机内的某一端。在打印一行时,则需要向外移动,打印一行结束后,打印头需要回到原来位置。由于打印头在英文中用“车”来表示,所以这个动作就称为“回车”,用金山词霸的中的解释就是:“将打印或显示位置移到同行起始位置的运动。”

所以对于打印机,假设有两行字,两行之间若光有“回车”,那么这两行字将重叠在一起(对于控制台程序的屏幕,则将回到行首)。如果光有“换行”,则第二行将不从起始位置打起,样子如下:

这是第一行

这是第二行。

只有既输出“回车”又输出“换行”,才是我们常见的换行结果。当然,对于当今的大都软件,往往都把单独的回车或换行直接解释于二者的结合。

先\r后\n就可以了,改成fprintf(fp2,"there are %d charactors:\r\n",n);

编码问题,我以前学C语言时就是那样,一直都以为是不可改变的事实,等待着高人ing
^_^Y

fprintf(fp2,"there are %d charactors:\r\n",n);