从控制台获取字符串但不知道长度

Zac*_*ary 3 c++ string iostream input

我要求用户在控制台上输入一个字符串.但我不知道字符串的长度.

如何定义一个结构以适应具有可变长度的输入?

int main(){
    int i;
    char s[10];

    cout << "input string:";
    cin >> s;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果输入字符串长度超过10,示例代码将导致堆损坏.

bil*_*llz 10

请改用std :: string.例如:

#include <string>

 std::string s;

 std::cout << "input string:";
 std::cin >> s;
Run Code Online (Sandbox Code Playgroud)

或者使用std :: getline获取一行直到结束字符

std::getline(std::cin, s);
Run Code Online (Sandbox Code Playgroud)