函数getline(CIN,_string);

时间:2012-08-19 12:39:18

标签: c++ string getline

我知道getline(cin,_string);完美无缺

但这不是:

char* _chArr = new char;
getline(cin,_chArr);

即使这个alson不起作用:

char* _chArr = new char[30];
getline(cin,_chArr);

char*不是字符串??

3 个答案:

答案 0 :(得分:5)

  

不是char *是一个字符串

不,它是指向char的指针,就是这样。函数std::getline执行一些很酷的东西(扩展字符串和所有内容),这些内容在char *上无法轻松完成。

答案 1 :(得分:2)

从逻辑上思考它。 char *只是指向字符类型内存块的指针。您必须为其分配一定量的动态内存,然后使用strcpy()或手动将数据复制到其中。 C ++不支持直接输入。字符串实际上是包含其内部大小的对象。它们由该行业的专家设计,它们提供了直接输入和动态增长,就像内置功能一样。 string和cstring之间存在差异。 Cstring是char *。

答案 2 :(得分:1)

不,C ++字符串不是只是字符数组,它们是一个完整的类,通常会有很多额外的东西,超出字符数组提供的范围。