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++ 如何在c+中读取1.000.000个字符的字符串+;使用getline()?_C++_String - Fatal编程技术网

C++ 如何在c+中读取1.000.000个字符的字符串+;使用getline()?

C++ 如何在c+中读取1.000.000个字符的字符串+;使用getline()?,c++,string,C++,String,我需要在同一行输入上读取字符串的1.000.000个字符,并且我通常使用getline(cin,string_name)来完成所有这些任务。但在这种情况下,我无法得出这些“大”数字。 我该怎么解呢?我唯一不同于正常的想法是在字符串中保留空格。 这样它就不会花时间重新分配空间 // 1,000,000 is approx 1M that should not be that big. std::string line; line.reserve(1'000'100) // Tiny bit

我需要在同一行输入上读取字符串的1.000.000个字符,并且我通常使用getline(cin,string_name)来完成所有这些任务。但在这种情况下,我无法得出这些“大”数字。
我该怎么解呢?

我唯一不同于正常的想法是在字符串中保留空格。 这样它就不会花时间重新分配空间

// 1,000,000 is approx 1M that should not be that big.

std::string   line;
line.reserve(1'000'100) // Tiny bit extra for fun. I bet there is some overhead.
std::getline(std::cin, line);

“,,但在这种情况下,我无法得到这些“大”数字…”为什么不呢,会出现什么错误,问题是什么?
std::getline()
仅受可用内存的限制,因此1000000个字符应该不需要它来处理。唯一可以阻止它这样做的是,如果
string\u name.max\u size()
小于1000000个字符(不太可能,除非您在嵌入式系统上),或者终端不能在一行上接收1000000个字符(更可能)。您是否尝试过从文件而不是从
cin
读取1000000个字符?我在尝试解决“codeforces”平台的问题时遇到了这个问题。算法运行良好,直到平台放入1000000个字符的行,因为表示“时间超过错误”。所以idk如果问题真的是内存或smth其他。