我上的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