cin.getline()用来读取一行数据,但是当cin.getline()前面进行了cin输入的话,cin.getline()会把进行cin输入时行末丢弃的换行符读入,从而造成cin.getline()第一次获得的数据为一空行,如下所示: int main() { int rep; cin >> rep; for (int i=0; i<rep; i++) { cin.getline(str,25); } } 此时cin.getline()所读入的第一行是空行,并且占据一次读入次数,造成只能再输入rep-1次数据。 解决办法 cin.ignore(); 如下所示: int main() { int rep; cin >> rep; cin.ignore(); for (int i=0; i<rep; i++) { cin.getline(str,25); } } 如此即可忽略掉第一次输入所遗留的换行符,用cin.getline()直接读取下一行输入的数据。 另外,cin.getline(str,length,"读取截止标志")可以用来读取一行数据,并且自动忽略所设置的读取截止标志 (默认是换行符),这一点不同于cin.get().
getline()之前存在cin时的使用
最新推荐文章于 2024-03-24 21:27:18 发布