我知道getline(cin,_string);工作得很好
但这不是:
char* _chArr = new char;
getline(cin,_chArr);甚至这个alson也不能工作:
char* _chArr = new char[30];
getline(cin,_chArr);char*不是字符串吗??
发布于 2012-08-19 20:51:32
从逻辑上考虑这一点。char*只是一个指向字符型内存块的指针。您必须为其分配一定数量的动态内存,然后使用strcpy()或手动将数据复制到其中。C++中不支持直接输入。字符串实际上是包含大小的对象。它们是由该行业的专家设计的,它们提供了直接输入和动态增长,就像内置功能一样。string和cstring是有区别的。Cstring是char*。
发布于 2012-08-19 20:41:11
不是字符*是字符串
不,它是一个指向char的指针,仅此而已。函数std::getline做了一些在char *上不容易做的很酷的事情(扩展字符串等等)。
发布于 2012-08-19 20:42:15
不,C++字符串不只是字符数组,它们是一个成熟的类,通常在字符数组提供的功能之外,还隐藏着相当多的额外内容。
https://stackoverflow.com/questions/12026541
复制相似问题