2017-10-06 237 views
-1

我想从文本文件读入2个数组中的文件。我排除了在我的其他功能或我的主要问题,并留下大约5行代码....C++读取文件到多个数组

它会循环通过我的文档到最后,但它只输入一次通过txt循环。任何想法都会很棒!

void load_donations(string donor[], string donation[]) 
{ 

    string text; 

    cout << "What *.txt file would you like to load? "; 
    cin >> text; 
    text += ".txt"; 
    cout << text << endl; 
    ifstream infile; 
    infile.open (text.c_str()); 
    int i = 0; //moves to next slot in array 

    while (!infile.eof()) 
    { 

     getline(infile, donor[i]); 
     getline(infile, donation[i]); 
     i++; 

    } 

    infile.close(); 
} 
+0

不会这个工作捐献[i] =捐献者[我]? – brownKnight

+0

我不知道你在说什么,我应该这样做... 但我想要的是我的.txt文件阅读这样的。 麦精 鞋 亨利 现金 先生的Biggles 食品 史蒂夫 时间 然后每个偶数行进入施主[i]和奇数行进入阵列[1]。我的问题是它似乎只有一个循环。如果我指出一个循环计数器,它会显示它遍历所有行,而不是将它们保存到数组中。 – Hooch

+0

无关[为什么iostream :: eof内部循环条件被认为是错误的?](https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – user4581301

回答

-1

对于这一点,你需要通过文字声明的char动态数组,并 然后从文件字符读取和保存,在循环中动态数组的字符。

这对你有意义吗?

+0

它确实...像stringstream?我的问题是,它似乎工作几乎是这样,动态数组现在是不行。 – Hooch

+0

你可以发布你的文本文件的截图吗? –

1

问题是我没有把这个函数的计数传递给打印出我的数组的函数..我只是在创建像Peter这样的最小值时才注意到它。随时在我的出路上踢我。

+0

这就是为什么MCVE是每个成功程序员的工具箱的一部分。无论如何,或者我认识的每一个人。强烈建议修复'while(!infile.eof())'错误,同时处理它。使用'while(getline(infile,donor [i])&& getline(infile,donation [i])){i ++; }' – user4581301