我上的Visual C++ 2010cin.getline設置開始字符串的「 0」
char c[10];
cin.get(&c[0],5);
cin.get(&c[2],4);
cout << c << endl;
運行此片的代碼,如果我喂「123456789」到cin
,所述cout
子句將打印「 12567「,這是我預期的結果。
但如果我寫:
char c[10];
cin.getline(&c[0],5);
cin.getline(&c[2],4);
cout<< c <<endl;
和飼料相同的字符串,它只會告訴我 「12」,其中c == { '1', '2', '\ 0',」 4','\ 0'}
根據documentation,cin.get和cin.getline的區別在於cin.get不會像cin.getline那樣丟棄delim字符,所以我不知道爲什麼會發生。任何人都可以給我提示嗎?
您不能使用I/O函數而不檢查它們的返回值。 – 2012-03-20 22:49:41
eofbit,badbit等是什麼樣的? – 01100110 2012-03-20 22:53:25
@ user1200129是的,我檢查了三位,「失敗位」是真的,但我不知道爲什麼。 – ziyuang 2012-03-20 23:17:31