如何在c ++中输入长度为100000的字符串。我已经尝试了所有cin,gets,scanf,getline,getchar。但仍然没有。 请帮忙。
#include <iostream>
using namespace std;
#include <string>
#include <stdio.h>
int main() {
string s="";
for(int i=0;i<65535;i++){
char c=getchar();
s=s+c;
}
string s1="";
for(int i=0;i<5;i++){
char c=getchar();
s1=s1+c;
}
cout<<s1[1];
// your code goes here
return 0;
}
http://ideone.com/rC0U3q s1对于大字符串没有输出
!!!我发现了这个错误...它是ideone的限制...... thnx的回复
答案 0 :(得分:0)
以下内容应该没有任何问题地阅读您的输入:
string s = "";
cout << "Max size of a string: " << s.max_size() << endl; // for info
cin >> s;
cout << "Result (" << s.size() << " bytes): " << s <<endl;
我使用您提供的输入测试了它(Win8上的MSVC13),但在数据末尾添加了一个额外的换行符(在带有重定向的文件中),因为cin>>
通常是行缓存的,我不知道#39; t希望它永远等待&#39; \ n&#39;。
注意: 您的原始代码读取两个字符串s和s1,并仅打印第二个字符串的第二个字符串。