ch=getchar()和ch=getchar( )有什么区别
今天我在看以前学过的书时,在文件这一章,发现有这两行语句:
ch=getchar(); /* 此语句用来接收在执行scanf语句时最后输入的回车符 */
ch=getchar( ); /* 接收输入的第一个字符 */
我之前还真没在意,是我误解了什么还是我当时没学好,不知道多了一个空格有什么不一样?
[解决办法]
楼主没有搞错吧
- C/C++ code
getc():调用方式:int getc(FILE *stream)它返回指定输入流stream的当前位置的下一个字符,并增加文件的位置指示器.getch():调用方式:int getch(void)getch()从控制台读取一个字符,但不把该字符显示在屏幕上,也就是不回显.getche():调用方式:int getche(void)getchar()从控制台读取一个字符,把该字符显示在屏幕上,也就是回显.getchar():调有方式:int getchar(void)getchar()从控制台读取一个字符,并回显,它和getch(),getche()的不同在于,它等到输入一个回车才结束,就算你输入了一个字符串,它也只取其中的第一个字符.
[解决办法]
ch=getchar(); /* 此语句用来接收在执行scanf语句时最后输入的回车符 */
这句之前是不是用scanf输入过字符?如果是的话就没问题,用scanf函数在输入字符时只会从缓冲读取一个字符,其他的字符都遗留在输入缓冲中,包括回车符。
最好是贴出完整的代码
[解决办法]
- C/C++ code
#include <stdio.h>int main(){ int c; c = getchar(); //或者用scanf("%c", &c); putchar(c); getchar(); //注意这句,实际上不会等待你输入,直接读取缓冲区遗留的字符 return 0;}
[解决办法]