文本结束符:
Linux /UNIX --> 换行符('\n');
MS-DOS --> 回车符合换行符的结合。
例:
func() { char c = getchar(); }
func函数被调用时,Linux系统会暂存用户输入的内容,知道用户按下回车键。由于Linux系统以换行符('\n')作为文本结束符的,所以用户按下回车键时,系统中实际上是缓存了2个字符:用户输入字符 + 换行符,当用户第二次调用func函数时,最先得到的是第一次调用时缓存下来的换行符,而不是用户第二调用时输入的字符。
解决方法:忽略额外的换行符
do{ char c = getchar(); }while( c == '\n');