getchar() function
2009-05-06 14:42 cesc711 阅读(166) 评论(0) 编辑 收藏 举报昨天写了一个最简单的利用stack的行编辑器。用的是getchar()方法来读取键盘的输入。
函数原型:
int getchar()
getchar()方法返回的是所读取到的字符的ASCII码值。当getchar()被调用的时候,就等待用户按键。用户输入的字符被放在键盘缓冲区中,直到按回车键为止(回车也放在缓冲区中)。直到用户按下回车键的时候,getchar()方法开始从stdin流中每次读取一个字符。如果用户输入了不止一个字符,其它字符会被放在键盘缓冲区中,等待后续的getchar()方法调用。也就是说,后续的getchar()没有在等待用户输入,而是直接读取键盘缓冲区中的字符。直到缓冲区中的字符读完之后,才等待用户继续输入。
我的用法是:
1 void LineEdit(){
2 SqStack st(20);
3 int c;
4 while((c=getchar())!='\n'){
5 switch (c)
6 {
7 case '#':
8 st.Pop();
9 break;
10 case '@':
11 st.ClearStack();
12 break;
13 default:
14 st.Push(c);
15 break;
16 }
17 }
18 st.TraverseStack();
19 }
2 SqStack st(20);
3 int c;
4 while((c=getchar())!='\n'){
5 switch (c)
6 {
7 case '#':
8 st.Pop();
9 break;
10 case '@':
11 st.ClearStack();
12 break;
13 default:
14 st.Push(c);
15 break;
16 }
17 }
18 st.TraverseStack();
19 }