大字符串I / O.

时间:2014-08-09 10:02:48

标签: c++ string

如何在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的回复

1 个答案:

答案 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,并仅打印第二个字符串的第二个字符串。