C语言中,为什么有些程序最后输出时要加换行符,有的不用?
发布网友
发布时间:2022-04-07 21:49
我来回答
共3个回答
热心网友
时间:2022-04-07 23:18
c语言在向计算机输入文本文件时,将回车换行符转换为换行符,在输出时把换行符转换成回车和换行两个字符。
在用二进制文件时,不进行这种转换,在内存中的数据形式与输出到外部文件中的数据形式完全一致,一一对应。
c语言中怎样知道文件中的换行符是
还是
回答是:这是一个实现相关的问题。
首先纠正一下你说法中的错误:
是回车,在c中就是字符'\r';换行是
,是字符'\n'。
在windows环境中,如果输入到文本文件,程序中的一个'\n'换行符被解释成'\r'、'\n'两个字符(会车、换行);相反,如果读取文本文件,文件中的相邻的两个'\r'、'\n'会合并为一个'\n'输出。
而在unix/linux环境下,'\n'就是'\n',保持不变。
因此,windows下的文本文件和unix/linux下的文本文件的格式是不同的,其原因就在于对于程序中的'\n'换行符的解释不同。
n,换行符(软回车和走纸)
是换行走纸,没有回车,回车是由'\r'实现
在unix中,早期的输入通常是穿孔机,没有什么回车概念。在dos中,由于是屏幕输入,通常就有了'\r''\n'的区别,为了保证每次换行都能从头开始,dos中的换行符通常会被存储为'\r\n';getchar是标准流接受函数,不识别'\r',getche是有回显的屏幕截取函数,不识别'\n'。
热心网友
时间:2022-04-08 00:36
加换行符之后,下次运行程序时光标是在下一行,没加就在上次结果后面输入字符,加不加都行,加了之后看着方便。
热心网友
时间:2022-04-08 02:11
擦,很简单的道理,换行符只是使得光标位置换到下一行开始。第一个例子光标紧跟输出结果后面,第二个例子光标在输出结果下一行开始处。明白?