今日錯誤總結 編譯器嚴格程度差異的部分解決

2021-10-03 01:23:27 字數 1679 閱讀 8457

**今日練習過程中遇到了很多新的很有價值的問題,特記錄於此,便於回望複習,以示沉澱.**

1.vs2019中c++的if判斷對於輸入字串的由於嚴格程度導致問題的部分解決辦法:

下面介紹一下提示錯誤的**(在code blocks沒有錯誤):下面的**是用來測量輸入的總單詞數以及字母總數的.

#include

#include

#include

using

namespace std;

intmain

(void

) count++

; length +

= word.

length()

;}cout <<

"一共有"

<< count <<

"單詞"

<< endl;

cout <<

"總長度:"

<< length << endl;

system

("pause");

return0;

}

if(!

(cin >> word)

)

或者

if((

(bool

)(cin >> word))==

false

)

最後都可以成功執行

最後都需要ctrl+z實現結束死迴圈.

2.vs2019中c語言對上述功能的同等實現,同樣出現了問題但是解決了一部分

先提供**如下:

#include

#include

#include

intmain

(void

) count++

; length +

=strlen

(word);}

printf

("一共有 %d 個單詞\n"

, count)

;printf

("總長度:%d\n"

, length)

;system

("pause");

return0;

}

這段**同樣在codeblocks裡完美執行,but!!!在vs2019裡也出了問題:

但這裡很好解決,但預感以後如果不注意這個safe,以後肯定會出大事兒.

只要將原始檔cpp檔案的屬性裡把sdl檢查關掉就好了.

但是今天最迷惑的來了,這個程式雖然能執行了,but!!!只有用三次ctrl+z並回車三次才能結束程式,這個問題現在正在請教,預計晚上更新.

待續 2020.2.20 韓某人記

VC 編譯器錯誤大全

一 lnk2001錯誤的原因 一 由於編碼錯誤導致的lnk2001。1 不相匹配的程式 或模組定義 def 檔案能導致lnk2001。例如,如果在c 原始檔內宣告了一變數 var1 卻試圖在另一檔案內以變數 var1 訪問該變數,將發生該錯誤。2 如果使用的內聯函式是在.cpp檔案內定義的,而不是在...

編譯器警告和錯誤詳解

原文 1.warning 550 d variable d was set but never used 描述 變數 d 定義但從未使用,或者是,雖然這個變數你使用了,但編譯器認為變數d所在的語句沒有意義,編譯器把它優化了.解決 仔細衡量所定義的變數d是否有用,若是認定變數d所在語句有意義,那麼嘗試...

keil MDK編譯器警告和錯誤詳解

1.warning 550 d variable d was set but never used 描述 變數 d 定義但從未使用,或者是,雖然這個變數你使用了,但編譯器認為變數d所在的語句沒有意義,編譯器把它優化了.解決 仔細衡量所定義的變數d是否有用,若是認定變數d所在語句有意義,那麼嘗試用vo...