[問題] 在不同的編譯器執行結果不同?
我在寫一個質因數分解的程式,在最前面我寫了一個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
→
02/21 17:58, , 1F
02/21 17:58, 1F
→
02/21 18:35, , 2F
02/21 18:35, 2F
推
02/21 19:20, , 3F
02/21 19:20, 3F
→
02/21 20:10, , 4F
02/21 20:10, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章