请问换行符“\n”相对于键盘上的哪个键?

Ferrerox 2010-12-30 10:37:09
假如空格符是space,制表符是tab,换行符是哪个键?

假如scanf(%c,&string),我要输入A,然后我输入B,那程序会把A和B都算进去吗?还是忽略B?
...全文
1403 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
lten1 2011-01-01
  • 打赏
  • 举报
回复
回车吧。
shangyangi 2011-01-01
  • 打赏
  • 举报
回复
\r表示回车,回到本行的首部
\n表示换行,换到下一行
AnYidan 2011-01-01
  • 打赏
  • 举报
回复
字符集不同,不同,Enter键可能为\r\n,也可能为\n
usercel123456 2011-01-01
  • 打赏
  • 举报
回复 1
这是我在CSDN上看到的,



c语言中怎样知道文件中的换行符是<cr>还是<crlf>

回答是:这是一个实现相关的问题。

首先纠正一下你说法中的错误:<cr>是回车,在C中就是字符'\r';换行是<lf>,是字符'\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'
mLee79 2011-01-01
  • 打赏
  • 举报
回复
水果是 \r Unix/Linux 是\n M$是 \r\n
wizard_tiger 2011-01-01
  • 打赏
  • 举报
回复
\r表示回车,回到本行的首部。
\n表示换行,换到下一行。
漫步者、 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 schoolers 的回复:]
windows回车是\r\n , linux是\n
[/Quote]windows回车是\r\n 还是有区别的。
某某9 2010-12-31
  • 打赏
  • 举报
回复
windows回车是\r\n , linux是\n
某某9 2010-12-31
  • 打赏
  • 举报
回复
根据系统的不同,Enter键可能为\r\n,也可能为\n
  • 打赏
  • 举报
回复
windows回车是\r\n , linux是\n
screwzm 2010-12-31
  • 打赏
  • 举报
回复
回车键
青蛙果果 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 nowdoit 的回复:]
引用 5 楼 hnuqinhuan 的回复:
引用 3 楼 ouyh12345 的回复:
根据系统的不同,Enter键可能为\r\n,也可能为\n

+1赞同


++

楼主可以去读一读 unix系统和windows系统文件中对于回车符的处理,当然unix在先了,貌似是\n;而windows在后,设置为\r\n了。这个是系统自动处理的一些东西吧,处理的时候注意下就行了。


赞同
wizard_tiger 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ouyh12345 的回复:]
根据系统的不同,Enter键可能为\r\n,也可能为\n
[/Quote]
正解!
slient_wj 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ouyh12345 的回复:]

根据系统的不同,Enter键可能为\r\n,也可能为\n
[/Quote]
+1,曾经写过一个代码,发现但输入\r和\n在windows下面都不能换行,后来自己单步读了一下才发现
luxihua 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ouyh12345 的回复:]

根据系统的不同,Enter键可能为\r\n,也可能为\n
[/Quote]
++
漫步者、 2010-12-30
  • 打赏
  • 举报
回复

假如scanf(%c,&string),我要输入A,然后我输入B,那程序会把A和B都算进去吗?还是忽略B?
// A,忽略到B,因为%c,B被放入了输入流中,等待被下一个寄存器存储。
NowDoIT 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hnuqinhuan 的回复:]
引用 3 楼 ouyh12345 的回复:
根据系统的不同,Enter键可能为\r\n,也可能为\n

+1赞同
[/Quote]

++

楼主可以去读一读 unix系统和windows系统文件中对于回车符的处理,当然unix在先了,貌似是\n;而windows在后,设置为\r\n了。这个是系统自动处理的一些东西吧,处理的时候注意下就行了。

记不太清,权当参考。
zfm850722 2010-12-30
  • 打赏
  • 举报
回复
你对scanf函数的调用还不是很清楚,建议楼主先彻底的学一遍,搞清楚怎么调用了自然就解决了
wangchensong 2010-12-30
  • 打赏
  • 举报
回复
不同系统不一样,就是回车之类吧,呵呵
就想叫yoko 2010-12-30
  • 打赏
  • 举报
回复
+1, windows回车是\r\n , linux是\n[Quote=引用 2 楼 jiangweihaojwh 的回复:]
没看懂,不过scanf()里面应该有个引号
[/Quote]
加载更多回复(7)

70,005

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧