读书人

ch=getchar()和ch=getchar( )有什么区

发布时间: 2012-04-05 12:42:39 作者: rapoo

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;}
[解决办法]
探讨
C/C++ code

//从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个"#"为止

#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(fi……

读书人网 >C语言

热点推荐