在 C++ 中使用获取行
using get line in c++
好的,我正在尝试使用代码:
getline(cin, phrase);
编译时出现错误:
没有调用 'getline'
的匹配函数
完整代码如下:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
cout << "Challenge 1\n" << "Kaitlin Stevers\n" << "Characters and Strings" << endl;
cout << endl;
cout << endl;
char letter[2];
cout << "Please enter a letter: " << endl;
cin >> letter;
cout << "You entered: " << letter << endl;
char word[5];
cout << "Please enter a word up to 5 characters long: " << endl;
cin >> word;
cout << "The word you entered is: " << word << endl;
char phrase[100];
cout << "Please enter a phrase up to 99 characters long: " << endl;
getline(cin, phrase);
cout << "The phrase you entered is: " << phrase << endl;
string lettero;
cout << "Enter one letter: " << endl;
cin >> lettero;
cout << "The letter you entered is: " << lettero << endl;
string wordo;
cout << "Please enter a word: " << endl;
cin >> wordo;
cout << "The word you entered is: " << wordo << endl;
string phraseo;
cout << "Please enter five words: " << endl;
getline(cin, phraseo);
cout << "The words you entered are: " << phraseo << endl;
return 0;
}
'no matching function call for getline',导致 getline takes a string not a char[] as argument. See cin.getline() 如果你绝对想传递一个 cha[] 作为参数。
如你所见here。
这个getline(cin, string)
函数接受一个字符串。
不过,还有一条指令可用于将行放入字符数组 like so:
char phrase[99];
cin.getline (phrase,99);
或者您也可以将输入转化为字符串,然后将其转换为字符数组:
string temp = "";
cin >> temp;
char phrase[99];
strcpy(phrase, temp.c_str());
好的,我正在尝试使用代码:
getline(cin, phrase);
编译时出现错误: 没有调用 'getline'
的匹配函数完整代码如下:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
cout << "Challenge 1\n" << "Kaitlin Stevers\n" << "Characters and Strings" << endl;
cout << endl;
cout << endl;
char letter[2];
cout << "Please enter a letter: " << endl;
cin >> letter;
cout << "You entered: " << letter << endl;
char word[5];
cout << "Please enter a word up to 5 characters long: " << endl;
cin >> word;
cout << "The word you entered is: " << word << endl;
char phrase[100];
cout << "Please enter a phrase up to 99 characters long: " << endl;
getline(cin, phrase);
cout << "The phrase you entered is: " << phrase << endl;
string lettero;
cout << "Enter one letter: " << endl;
cin >> lettero;
cout << "The letter you entered is: " << lettero << endl;
string wordo;
cout << "Please enter a word: " << endl;
cin >> wordo;
cout << "The word you entered is: " << wordo << endl;
string phraseo;
cout << "Please enter five words: " << endl;
getline(cin, phraseo);
cout << "The words you entered are: " << phraseo << endl;
return 0;
}
'no matching function call for getline',导致 getline takes a string not a char[] as argument. See cin.getline() 如果你绝对想传递一个 cha[] 作为参数。
如你所见here。
这个getline(cin, string)
函数接受一个字符串。
不过,还有一条指令可用于将行放入字符数组 like so:
char phrase[99];
cin.getline (phrase,99);
或者您也可以将输入转化为字符串,然后将其转换为字符数组:
string temp = "";
cin >> temp;
char phrase[99];
strcpy(phrase, temp.c_str());