我想使用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)
你能告诉我一个什么是错的"
好吧,你没有创建一个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.