与CR之间的差异\n
根据ASCII表,新行字符(\n)的值为13,而回车符(CR)的值为13。当试图编写一个检测是否按下回车键的程序时。ı使用任意一个值安全吗与CR之间的差异\n,c,newline,carriage-return,C,Newline,Carriage Return,根据ASCII表,新行字符(\n)的值为13,而回车符(CR)的值为13。当试图编写一个检测是否按下回车键的程序时。ı使用任意一个值安全吗 if( ( kr=getchar() ) == 13 ) puts("Enter Key Pressed ") ; 或 您可以使用其中任何一个,但是您肯定应该使用\n,因为人们可以在没有外部引用的情况下阅读它。我认为这两个值是相同的,但是为了使代码更可读,您应该使用“\n”,或者在另一种情况下使用注释来解释您对键盘的期望。简短回答:您应该始终
if( ( kr=getchar() ) == 13 )
puts("Enter Key Pressed ") ;
或
您可以使用其中任何一个,但是您肯定应该使用
\n
,因为人们可以在没有外部引用的情况下阅读它。我认为这两个值是相同的,但是为了使代码更可读,您应该使用“\n”,或者在另一种情况下使用注释来解释您对键盘的期望。简短回答:您应该始终使用'\n'
更长的回答:是的,回车是ASCII 13,在C中是'\r'
。
换行符是ASCII 10(不是13),在C中是'\n'
但您按下的键不一定与C程序中接收到的字符相同,原因有二:
'\n'
。即使基础操作系统具有不同的约定,在正常情况下,程序也应该接收新行的'\n'
。(类似地,当您打印'\n'
时,它会转换为回车符、换行符或回车符/换行符对,具体取决于操作系统的约定。)最后,无论您做什么,即使您确实需要显式处理回车,也请在C程序中使用
'\r'
和'\n'
。不要让读者知道神奇数字10和13(或0x0a和0x0d)是什么。通过外部引用,您的意思是ascii表?C不保证使用ascii。简短的回答是:使用\n
换行符的值是10,而不是10。所以你的问题没有多大意义。
if( ( kr=getchar() ) == '\n' )
puts("Enter Key Pressed ") ;