Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Cpp中获取无限字符_C++_String_Char - Fatal编程技术网

C++ 在Cpp中获取无限字符

C++ 在Cpp中获取无限字符,c++,string,char,C++,String,Char,我想得到无限的字符,实际上我创建了字符*,我使用cin,我想把它改成字符串。 我不知道用户输入的长度,所以我为自己做了这个解决方案。 有人能告诉我plz,如何在不知道输入大小和转换为字符串的情况下获取char*。 谢谢 > P>因为它是C++。只需使用std::string 如果您确实需要使用char*查看而不是使用char*,请使用标准库 #include <string> #include <iostream> int main() {

我想得到无限的字符,实际上我创建了字符*,我使用cin,我想把它改成字符串。 我不知道用户输入的长度,所以我为自己做了这个解决方案。 有人能告诉我plz,如何在不知道输入大小和转换为字符串的情况下获取char*。
谢谢

> P>因为它是C++。只需使用
std::string


如果您确实需要使用
char*
查看而不是使用
char*
,请使用标准库

  #include <string>
  #include <iostream>

  int main()
  {
       std::string data;

       std::getline(std::cin, data);

       std::cout << data << '\n';
  }
#包括
#包括
int main()
{
std::字符串数据;
std::getline(std::cin,数据);

std::cout你为什么不直接使用
std::string
?你可以创建一个链表。但随着时间的推移,这比std::string的效率要低,后者是保留一些从初始大小开始的缓冲区,然后在缓冲区过大时重新分配一个更大的缓冲区。实际上,我想要另一个解决方案,而不是字符串,我想解决我的问题获取无限字符的问题,除了linkedlist之外还有其他吗?@Zahra或者你可以使用
std::unique\u ptr s(新字符[任意长度])
。但是您需要自己管理NUL终止,并且在输入之前仍然知道最大长度。更好的方法是简单地使用
std::string
。如果您不想使用
std::string
,那么您必须自己实现
std::getline
的功能。也许您可以将源代码复制到y我们的项目和修补程序。非常感谢@Peter,但实际上我正在寻找获取char的方法。感谢您的回复!@Zahra-阅读
std::string
的文档。它有成员函数,提供对底层数据的访问…作为指向(的第一个元素)的指针动态分配的
char
数组,即
const char*
。如果您尝试使用原始指针(而不是
std::string
),则需要手动管理内存分配,并在不再需要时(同样重要)解除分配。