作者daoism (......)
看板C_and_CPP
标题[问题] 在不同的编译器执行结果不同?
时间Sat Feb 21 15:39:13 2009
我在写一个质因数分解的程式,在最前面我写了一个do while回圈来判断输入是否正确
以下是我的部分程式:
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string input_string; //输入为string型态
int input; //存放由input_string转换过来的值
do
{
cout<<"请输入一个小於10000的数字"<<endl;
getline(cin, input_string);
istringstream(input_string)>>input;
}
while (input>10000);
return 0;
}
这个程式在两个编译器编译时都没有错误讯息,可是执行的时候依照我输入的文字
会有不同结果。
1. Code:blocks 使用GNU GCC compiler , debugger是 GDB
若我输入a,则萤幕会显示"请输入一个小於10000的数字"
2. Visual Studio 2008
若我输入a,则程式结束,显示"请按任意键继续"(使用 侦错-->启动但不侦错)
请问为什麽会这样呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.101.122
1F:→ bleed1979:如果是getline(cin, input_string,'\n'); 02/21 17:58
2F:→ daoism:结果是一样的 02/21 18:35
3F:推 gotoo:强制转型的实做不一样吧 你可以把值印出来看看... 02/21 19:20
4F:→ daoism:谢谢 我了解了 02/21 20:10