當編寫解決一個難題一個程序,我碰到下面的代碼片段警告:警告C4244 '=':從'int'轉換爲'char',可能會丟失數據?
std::string str = "hello";
for (int i = 0; i < str.length(); ++i)
str[i] = toupper(str[i]); //make every letter capital
// ^^ warning
我得到上面的最後一行警告。
警告C4244 \'=':從'int'轉換爲'char',可能會丟失數據?
有什麼辦法擺脫這種警告?
你需要**閱讀文檔**爲'toupper'理解爲什麼它返回'int'這樣就可以決定什麼,如果有的話,做一下這個警告。 **有一個返回類型的原因,並且在不知道發生了什麼事情的情況下快速轉換爲char類型將是一個嚴重的錯誤。 –
注:我將你的代碼縮減爲[mcve]。爲什麼?那麼,你正在做一個迴文項目的事實與警告沒有任何關係。此外,不需要介紹:) **總是儘量讓你的問題儘可能短,但不要太短,即不要留下任何東西!** – Rakete1111
@ Rakete1111:本來是一個MCVE的包含和一個'main',但是否則很好! –