在 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());