读书人

新手请问:关于 getchar()scanf()读取数

发布时间: 2012-05-27 05:42:30 作者: rapoo

新手请教:关于 getchar()scanf()读取数据的问题

C/C++ code
int main(void){     char cc, ch;    char str[80];    int repeat, ri;    scanf("%d", &repeat);    getchar();    for(ri = 1; ri <= repeat; ri++){        cc = getchar();        getchar();        i = 0;        while((ch = getchar()) != '\n'){            str[i++] = ch;        }        str[i] = 0;



当 用 scanf接收 repeat的值的时候 ,从键盘 上 输入一个 数据,最后要以回车才能接受键盘 输入的数据,,然后这个 回车怎么处理,??难道还能影响到下面 “cc=getchar();”的语句吗?我知道 在两条语句间插入 getchar();是接收刚才输入的回车,不免影响,但是 想不明白,回车是为了scanf语句接收数据最后才打入的,怎么莫名的能被getchar接收 ,,难道 打入的回车 也在 什么缓冲区?? ,,所以请教各位高手

[解决办法]
这两个语句都是在输入流中提取字符,回车(\n)也是字符,也会被提取。
出现的scanf要获取输入流的数据必须等用户键入,但是getchar出现的时候因为前面已经有输入流了,所以直接从前面的输入流提取。
[解决办法]
C/C++ code
 for(ri = 1; ri <= repeat; ri++){ 

读书人网 >C++

热点推荐