以下是源程序: #include <iostream.h> #include <stdio.h>
int main() { int n; cout<<"input a int number:"; cin>>n; cout<<n;
float x; cout<<"input a float number:"; cin>>x; //执行此句后查看x就是输入的值 cout<<x; //到这里就不输出了,我猜是cin没接收到,是不是有什么格式的问题啊
getchar(); }
问题出在你的getchar()上了! 如果有这个函数的话要两次回车才能输出第2次输入的数 如果把他去掉就没问题了! 你如果用的是VC++ 6.0 编译本身会有一个和getchar类似的功能调用,不用你再调用这个函数! 另外你的主函数好像有点问题,我这里没有通过编译 改了一下,去掉了没什么用的声明,最后结果如下: #include <iostream.h>
void main(void) { int n; cout<<"input a int number:"; cin>>n; cout<<n<<endl;
float x; cout<<"input a float number:"; cin>>x; cout<<x<<endl;
}
这是因为 cout<<x 还没有真正输出到屏幕,只是输出到了“输出缓冲区”,而此时 getchar() 被调用了,故而要多按一次回车。解决方法很简单,加入 flush 强制清空“输出缓冲区”就可以了。代码如下 #include <iostream> #include <cstdio>
using std::cout; using std::cin; using std::flush;
int main() { int n; cout<<"input a int number:"; cin>>n; cout<<n;
float x; cout<<"input a float number:"; cin>>x; cout<<x << flush; /* 加入 flush 强制清空输出缓冲区就可以了 */
getchar();
return 0; }