2016-08-25 59 views
2

所以,剛開始編程我在大學;不幸的是,這樣的:VC++和* nix編譯器差異

作品必須是一個記事本*在XX PT固定寬度字體

.txt文件:捂臉:

除了點那雖然!因此,它是「必需的」(我還沒有收到一封確認郵件是否不* nix中是好的,只要它工作在Windows中)使用VC++,這似乎是可笑的不必要的:

#include <iostream> 

int main() 
{ 
    std::cout << "Hello, world." << endl; 

    system("pause"); 

    return 0; 
} 

除了事實上,我不能忍受在Windows環境中開發,並且更喜歡* nix的機器...

我的問題是,是否將下面的代碼將正確地在Windows,試圖複製system("pause")編譯,特別是getline功能:

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    string p; 

    cout << "Hello, world" << endl; 
    cout << "Press enter..."; 
    getline(cin, p); 

    return 0; 
} 

VC++和* nix編譯器之間是否有任何主要的區別會影響簡單程序執行的結果?

我已經在網上搜索,並沒有找到太多的答案。

+3

符合規範的代碼應該適用於所有編譯器。不過作爲一個MSVS用戶,我可以說它缺少一些g ++或clang的功能,所以你可能會陷入困境。 – NathanOliver

+0

好的,我認爲它可能會成爲一個問題,我敢肯定,並非每個Windows專用功能都有一個獨立於平臺的解決方案。我只是想知道是否有一些在線參考資料可用。 –

+0

@NathanOliver,所有符合性的僞裝都會被「系統(暫停)」所拋棄。 – SergeyA

回答

2

回答具體問題:std::getline(std::cin, p)將暫停執行,直到從std::cin讀取\n字符。假定在顯示提示之前沒有這樣的字符 - 例如,僅僅因爲用戶已經按下了它。

+0

這個問題不是基於'getline'的功能;而不管它是否是獨立於平臺的操作。 –

+1

@ specter-d,我回答完了,是嗎? – SergeyA

+0

不直接,不。我問是否會在Windows中編譯,而不是它的作用。 –

1

使用onethe Visual Studio 2015聯機編譯器,您可以驗證它確實編譯。存在無法輸入任何內容的問題,但您至少可以驗證它是否編譯並查看未來分配的輸出。

+0

太棒了,這對我來說非常有用。我搜索了這樣的東西,但沒有找到。 –