簡體   English   中英

解釋下面C++程序的output?

[英]Explain the output of the following C++ program?

int x = 10,y = 18; char z = '*';
cin>> x >> y >> z;
cout<< x << " " << y << " " << z << endl

給定輸入“46”“A”和“49”的順序,我運行程序時的output是“460 *”(不包括引號。為什么會這樣?

xy是 integer 類型。 z是一個char

給定輸入46 A 49

  1. cin>> x成功並將x設置為46

  2. cin>> y失敗,因為A不是 integer。 y設置為0並設置cin failbit。

  3. 因為cin處於失敗狀態,所以cin>> z什么都不做, z保持不變。

當預期 integer 時,您的輸入在鍵入“A”時失敗。 它不會自動將其轉換為它的 ascii 代碼。 這就是為什么你的最后一個變量保持不變的原因。 在這種情況下,第二個變量將設置為零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM