[英]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 *”(不包括引號。為什么會這樣?
x
和y
是 integer 類型。 z
是一個char
。
給定輸入46
A
49
,
cin>> x
成功並將x
設置為46
。
cin>> y
失敗,因為A
不是 integer。 y
設置為0
並設置cin
failbit。
因為cin
處於失敗狀態,所以cin>> z
什么都不做, z
保持不變。
當預期 integer 時,您的輸入在鍵入“A”時失敗。 它不會自動將其轉換為它的 ascii 代碼。 這就是為什么你的最后一個變量保持不變的原因。 在這種情況下,第二個變量將設置為零。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.