cin.getline返回值问题

来源:互联网 发布:java线程详解 编辑:程序博客网 时间:2024/05/17 23:52

     经过测试,用cin.getline()读入一行数据时,如果输入的数据大于函数参数中的字符个数n,则getline返回值为0!但cin.get()遇到这种情况的返回值不为0!如图

 

#include <iostream>#include <string>using namespace std;int main(){char b[20];cout << cin.getline(b, 20, '\n');return 0;}

#include <iostream>#include <string>using namespace std;int main(){char b[20];cout << cin.get(b, 20, '\n');return 0;}


所以读入多行数据时,最好不要用while(cin.getline())这种形式判断,除非把参数n设置为很大。

ps:读入一行字符最好用string类里的getline()


0 0