我把這個問題歸結爲atoi()的輸出類型轉換問題。基本上,我將一個string.c_str()傳遞給atoi(),並且可以像我期望的那樣'cout'該值(32)。但是,如果我做這樣的類型化:C:將atoi()的輸出轉換爲無符號字符?
string num = "32";
unsigned char x = (unsigned char)atoi(num.c_str());
cout << x << endl;
然後x結束沒有任何值。它不僅僅是0或者什麼,而是NULL。是什麼賦予了?
你是怎麼確定x沒有價值的? –
好的。 '#include'並執行此操作:'cout << bitset<8>(x);'查看'x'的實際8位二進制表示以確認其實際爲0. –
vvnraman
嘗試'cout <<(long)x << endl; - 它應該打印'32'。 – eraxillan