我讀文件字符由字符閱讀內容:前導0沒有得到從文件
的文件有:
000001111100000
當我使用此代碼讀取
int content;// converting to char will result in proper output.
std::ifstream fin;
fin.open("zero_one");
fin>>content;
while (!fin.eof())
{
std::cout<<content;
fin>>content;
}
fin.close();
我得到的輸出爲:1111100000
(前導零不存在),但後面的零存在。
問題是:因爲我使用>>
運算符來讀取,爲什麼我不能在輸出中得到前導零,而當我在輸出中得到尾隨零時。
此外,如果我將int
轉換爲char
爲content
變量,則輸出與文件內容相同。這是爲什麼?據我所知,char
和int
之間唯一的區別是變量的字節大小。
'int'只存儲數字的值。 '000001111100000'和'1111100000'具有相同的值。如果實際字符表示對於用例很重要,則需要將該數字作爲字符串讀取。 –
「據我所知,char和int之間的唯一區別是變量的字節大小。」這對於int和char類型是正確的,但對於這些類型,>>輸入運算符的重載方式不同。 –
這是一個鏈接:https://stackoverflow.com/questions/30580903/how-can-i-preserve-leading-zeros-when-reading-a-number-and-printing-it-later –