为什么我没有得到程序的输出。每当我运行代码时,它会在输入后停止吗?

0 c++ string pointers char

这是我的代码,我期待输出,但我没有得到。它在接受输入后停止,如果我给出名字 Harsh,我期待输出

你的名字叫严酷

 #include <iostream>
 #include <cstring>
 using namespace std;
 
 int main() {
     cout << "Enter your name" << endl;
     char *s;
     cin >> s;
     cout << "Your name  is  " << s;
     return 0;
 }
Run Code Online (Sandbox Code Playgroud)

我也尝试过,cin.getline(s,100);但仍然不起作用。所以我请求你解决这个问题并给我解决方案。

Rem*_*eau 5

您的代码具有未定义的行为,因为您没有分配任何内存来s指向。s是一个未初始化的指针。

试试这个:

#include <iostream>
using namespace std;

int main(){
    cout << "Enter your name" << endl;
    char s[100];
    cin >> s; // or: cin.getline(s,100);
    cout << "Your name is " << s;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

或者,您应该使用std::string,例如:

#include <iostream>
#include <string>
using namespace std;

int main(){
    cout << "Enter your name" << endl;
    string s;
    cin >> s; // or: getline(cin,s);
    cout << "Your name is " << s;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)