新手请教:关于 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++){