2011-05-08 wcdj 问题 : 测试下面代码,解释cin.gcount的输出为什么会不同? #include<iostream> using namespace std; int main() { // case 1: char a[10]; cin.getline(a,10); // 123456789 cout << a << endl; // 123456789 cout << cin.gcount(); // Note, 10 cout << endl; // case 2: char b[10]; cin.getline(b,10); // 1234567890 cout << b << endl; // 123456789 cout << cin.gcount(); // Note, 9 return 0; } 分析 : getline()是按行读入字符串,后面可以指定2个参数或3个参数,其在istream中的实现如下: _Myt& __CLR_OR_THIS_CALL getline(_Elem *_Str, streamsize _Count) { // get up to _Count characters into NTCS, discard newline return (getline(_Str, _Count