getchar()
getchar()遇到\n或EOF,则标志着这个getchar()函数结束,程序接着往后执行。如果接着又是一个getchar(),那么这个getchar()会首先在缓冲区中找字符,(特别注意,\n也属于会出现在缓冲区中的字符,而EOF则不会出现在缓冲区中),如果读取到字符,则程序接着往后执行。如果没有读取到字符,就像第一个getchar()那样,等待标准输入的结束或遇到\n,此函数才会结束
1 #include <stdio.h> 2 #include <string.h> 3 main() 4 { 5 char a,b,c,d,e; 6 a = getchar(); 7 b = getchar(); 8 c = getchar(); 9 d = getchar(); 10 e = getchar(); 11 12 13 } 14 /*上面这个程序,如果用户输入的是qf\n,当用户没输入空格之前,程序还是阻塞在第一个getchar当用户输入空格\n时,则a = getchar()这个运行结束,a为'q',程序开始往后执行,第二个getchar读取了缓冲区中的f,b为'f',程序接着往后执行,第三个getchar()读取缓冲区中的\n,程序接着往后执行,此时缓冲区中没字符了,程序阻塞在第四个getchar,等待用户的输入 15 16 17 如果用户输入的是sadEOF,则在用户没输入EOF之前,程序阻塞在第一个getchar,当用户输入EOF时候,第一个getchar运行结束,a是's',如上一个例子中那样,第二个getchar从缓冲区中读取a,第三个读取d,第四个从缓冲区中没有读取到字符,则程序阻塞在第四个getchar,等待用户的输入