getchar()函数的用法

来源:百度知道 编辑:UC知道 时间:2024/07/07 11:01:31
统计从键盘输入一行字符的个数。
#include <stdio.h>
main(){
int n=0;
printf("input a string:\n");
while(getchar()!='\n') n++;
printf("%d",n);
}

getchar函数不是只接受第一个字符么,如果是的话,那不成了死循环了么?
getchar 函数的功能是从键盘上输入一个字符。
getchar 函数只能接受单个字符,输入多于一个字符时,只接
收第一个字符。
如何理解它能顺序接受一行字符呢?

是不是说,每输入一个字符就执行一次循环呢?

还是不太明白,能否劳驾告诉我一下,程序的执行过程,多谢了!

这个样子的:
getchar()是到缓冲区读取第一个字符
首先,从键盘输入许多字符,最后回车后,所有字符包括回车放到缓冲区
这时才开始循环执行getchar(),读入一个字符判断是否回车,不是就继续读,是回车就退出循环(之所以说是顺序接受一行字符,是因为它取的始终是缓冲区中第一个字符,每取一个缓冲区的字符少一个,也就是顺序读取了)

getchar函数getchar函数的功能是从键盘上输入一个字符。
其一般形式为: getchar(); 通常把输入的字符赋予一个字符变量,构成赋值语句,如:
char c;
c=getchar();
#include<stdio.h>
void main(){
char c;
printf("input a character\n");
c=getchar();
putchar(c);
}

不是死循环啊~ 你函数上不是写着吗?while(getchar()!='\n')n++;就是输入的字符只要不是回车就n++,这样就可以算出你到底输入了多少个字符了
这个程序可以运行,楼上说的不对,回车是字符串最后一个字符 能跳出循环
字符串全部输入完才进入循环的

你这程序有问题
去VC里面不能通过编译

有退出条件,而且可以满足,怎么会是死循环呢?