首頁 > 後端開發 > C++ > 為什麼在 C 11 中提取失敗時 `stringstream >>` 將我的變數清零?

為什麼在 C 11 中提取失敗時 `stringstream >>` 將我的變數清零?

Patricia Arquette
發布: 2024-11-26 12:57:11
原創
667 人瀏覽過

Why Does `stringstream >>` 在 C 11 中提取失敗時將我的變數清零?
>` 在 C 11 提取失敗時將我的變數清零? "/>

為什麼Stringstream >> 會在失敗時更改目標值?

在現代C(C 11 及以上)中,>> 的行為提取失敗時stringstream 的; 運算子已從早期版本變更為失敗時,目標變數設定為預設值。 (整數通常為零),並且設定了失敗位標誌。 。在提取嘗試失敗後歸零。運算符的行為,如下所示:

如果由於資料類型無效而提取失敗(例如,嘗試將一個單字讀入一個整數),目標變數保持不變,並設定失敗位標誌。 std::numeric_limits::max())被寫入變量,並設定失敗位標誌。 C 11 模式下,此故障導致v 設定為0,如輸出所示。失敗時的一致性。

以上是為什麼在 C 11 中提取失敗時 `stringstream >>` 將我的變數清零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板