大家看看为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:10:16
#include <iostream>
using namespace std;
int main()
{
char c;
while((c=getchar())!='\n')
cout<<"sfsf"<<endl;
system("pause");
return 0;
}
为什么输入一个a后不能直接输出sfsf,而要按回车后才能输出;而输入两个a按回车后输出两次sfsf?另外不用C的getchar()可用C++中的什么函数?
那我想每输入一个字符就处理while()下的语句呢?怎么实现啊?

#include <conio.h>

//...
while ((ch=getch()) != 'q') {
//..
}
在不输入q的情况下循环,你可以改成其它字符.

--------------
getchar():是从IO流中读取一个字符,需等待。
你从终端输入一个a,只是将a放到了IO流中,和getchar()搭不上边。

<CR>后,激活getchar()函数,此时从IO流中读取一个字符,输出sfsf,getchar()发现IO流中还有字符[while循环],再次读取,不是'\n',继续输出,直到遇到'\n'。

你要不经<CR>就获取字符,使用getch()

C++里面可以用:cin.get();

因为你得表明一下你的输入完毕了。
getchar()只能读一个字符。

学习

你不输入回车程序怎么知道你是否输入完毕了,可能以为你还要输入呢
回车只是给电脑确认输入的提示

C++里面可以用:cin.get();代替C的getchar()

你输入完字符后必须要按回车表示你的输入完毕了
你不用getchar(),你可以用scanf试试,效果都是一样的,但是scanf可以接受字符,也可以接受字符串