我知道getline(cin,_string);
效果很好
但这不会:
char* _chArr = new char;
getline(cin,_chArr);
即使这也不起作用:
char* _chArr = new char[30];
getline(cin,_chArr);
不是char*
字符串吗??
不是 char* 是一个字符串
不,它是指向 a 的指针,仅此而已char
。该函数std::getline
做了一些在char *
.
好好想想逻辑。char* 只是一个指向字符类型内存块的指针。您必须为其分配一些动态内存,然后使用 strcpy() 或手动将数据复制到其中。C++ 不支持直接输入。字符串实际上是自身包含大小的对象。它们是由该行业的专家设计的,它们提供了直接输入和动态增长,就像内置功能一样。字符串和 cstring 是有区别的。Cstring 是 char*。
不,C++ 字符串不仅仅是字符数组,它们是一个成熟的类,通常在封面下还有很多额外的东西,超出了字符数组提供的功能。