如题,近来在刷字符串相关机试题时,因为要从键盘读入字符串进行判断,故采用cin.getline()函数来获取键盘写入的字符串,多次循环输入判断。
若开始输入字符串之前要输入一个数据代表输入多少组字符串。则在cin.getline()之前要有以下1或2的声明,否则会将输入的组数也当做字符串读入。
1 //scanf("%c", &c);
2 //getchar();
使用如上声明加cin.getline()函数时,可以正常输入组数,读取字符串;但发现若有多组数据,从第二组开始,每次读取会丢失第一个字符,这是因为:当同时使用cin >>,getline()时,需要注意的是,在cin >> 输入流完成之后,getline()之前,需要通过下面的两种方法作为输入流cin以清除缓存,如果不这样做的话,在控制台上就不会出现getline()的输入提示,而直接跳过,因为程序默认地将之前的变量作为输入流。