C++中的char*和cin

Pep*_*ork 2 c++ arrays cin

我想使用cin向char*变量输入一个不确定长度的字符串;

我可以做这个:

char * tmp = "My string";
cout << tmp << endl;
system("pause");
Run Code Online (Sandbox Code Playgroud)

它完美地运作.

但我没有做到这一点:

 char * tmp
 cin >> tmp;
Run Code Online (Sandbox Code Playgroud)

你能告诉我一个什么是错的"

fre*_*rik 7

好吧,你没有创建一个char*指向的对象.

char* tmp = new char[MAX_LENGTH];
Run Code Online (Sandbox Code Playgroud)

应该让它更好地工作(你必须定义MAX_LENGTH).另一种方法是:

std::string strtmp;
cin >> strtmp;
const char* tmp = strtmp.c_str();
Run Code Online (Sandbox Code Playgroud)

这种方法意味着你不需要使用new.

  • 不过,“c_str”是“const char*” (2认同)