這是我以前解決問題時,收集在印象筆記里的內容,為了以后整理方便,把它轉移至這里,以下內容,均來自微軟官方網站相關, 問題:C++控制臺閃回 解決辦法: 1,在程式結尾添加system("pause");[若有return陳述句則寫在return之前] 決議:system(const char *command); system函式回傳給定的命令字串command進行系統呼叫,如果命令執行正確通常回傳零值,如果command為NULL,system()將嘗試是否有可用的命令解釋器,如果有回傳非零值,否則回傳零值, system是執行dos下面的一些命令,在DOS下能執行的指令,用system都可以執行,把dos的命令直接放到它的引數里面就可以執行,用戶隨意敲一個鍵后程式繼續運行, pause 它會提示“請按任意鍵繼續……”,pause命令沒有任何的引數,它的命令就是它的本身,當pause命令運行后,會中斷執行陳述句,這個中斷不是立即停止,只是暫停,按下任意鍵之后就會繼續執行下面的陳述句,而且可以重復用很多次,在一個批處理命令中,可以嘗試使用多個pause命令, 2,在程式結尾添加get char();[若有return陳述句則寫在return之前] 決議:get char()函式從STDIN(標準輸入)獲取并回傳下一個字符,如果到達檔案尾回傳EOF,這種方法是直接讓程式運行get char函式,讓程式在接受一個字符后再退出,相當于自己按下任意鍵后程式才退出, 編譯器警告(等級1)C4305 “context”:從"type1"到"type2"的截斷 備注:如果將值轉換為較小型別的初始化或建構式引數,則會發出此警告,導致資訊丟失, 示例 此示例顯示了你可能會看到此警告的兩種方式: // C4305.cpp // Compile by using: cl /EHsc /W4 C4305.cpp struct item { item(float) {} }; int main() { float f = 2.71828; // C4305 'initializing' item i(3.14159); // C4305 'argument' return static_cast<int>(f); } 若要解決此問題,請使用正確型別的值進行初始化,或使用顯式強制轉換為正確的型別, 例如,使用浮點文本(如 2.71828 f),而不是雙精度(浮點文本的默認型別)來初始化浮點變數,或傳遞給采用float引數的建構式, 編譯器警告(等級2) C4244 "argument":從 "type1" 轉換到 "type2",可能丟失資料 浮點型別已轉換為整數型別, 可能發生了資料丟失, 如果收到 C4244,則應將程式更改為使用兼容型別,或向代碼添加一些邏輯,以確保可能值的范圍將始終與你使用的型別兼容, C4244 也可以在第3級和第4級激發;有關詳細資訊,請參閱編譯器警告(等級3和4) C4244 , 示例 下面的示例生成 C4244: C++ // C4244_level2.cpp // compile with: /W2 int f(int x){ return 0; } int main() { double x = 10.1; int i = 10; return (f(x)); // C4244 // try the following line instead // return (f(i)); }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/61759.html
標籤:C
上一篇:cookie報錯了,真沒看出來怎么改,求各位幫忙解答
下一篇:SCAU1143 多少個Fibonacci數--大菲波數【杭電-HDOJ-1715】--高精度加法--Fibonacci數---大數比較
