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,等待用户的输入
View Code

 

posted @ 2017-10-13 15:09  扫驴  阅读(304)  评论(0编辑  收藏  举报