最近碰到一个问题,就是从控制台读取一组数,如:
12 23 34 56
若是使用
1 int data; 2 while ( cin >> data ) {//...}
当回车后,不能有效转换到后面。除非输入非数字字符才能导致循环结束。这是因为cin在读取输入时,忽略空格和回车键等。
使用cin.get()可以从控制台中读取空格键,因此这段代码就可以改变为:
1 int data; 2 vector<int> room; 3 while ( cin >> data ) 4 { 5 room.push_back( data ); 6 if ( cin.get() == ' ' ) 7 break; 8 }