一.对于字符数组:
方法一:getline()
读入整行数据,它使用回车键输入的换行符来确定输入结尾。
调用方法: cin.getline(str, len);
方法一:getline()
读入整行数据,它使用回车键输入的换行符来确定输入结尾。
调用方法: cin.getline(str, len);
第一个参数str是用来存储输入行的数组名称,第二个参数len是要读取的字符数。
int main()
{
char str[30];
cin.getline(str, 30);
cout << str << endl;
return 0;
}
二.对于string类
方法一:getline(cin, str)
这说明这里的getline不是类方法。
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str);
cout << str << endl;
return 0;
}
包含其他输入后读入多行字符串
例如一些编程题要求先输入字符串行数,然后再一行一行读入字符串。如果正常顺写编程的话,会发现第一行字符串读入的是空,后续才能正常录入每行字符串。
这是因为第一行输入一个int数据后,换行符并没有被忽略,直接被准备读入第一行字符串的getline俘获。
所以需要在第一行输入一个int数据后,调用cin.ignore()忽略下面的一个流录入,将其抛弃。int N; cin>>N; cin.ignore(); //取消换行键的读入 string strCinLine[100]; for(int i =0;i<N;i++) getline(cin,strCinLine[i]);