C ++ имеет дело с файлами - PullRequest
0 голосов
/ 17 декабря 2011

У меня проблема с работой в C ++ с текстовыми файлами. Прежде всего, я хочу сделать программу, которая есть файлы .cpp и .h .. с классами и функциями.

Так вот моя проблема:

например, у меня есть текстовый файл, который содержит 5 строк текста (имена игроков). Поэтому я хочу, чтобы каждая строка этого текста была переменной строки ... Но пока я хочу использовать эти новые переменные, они внезапно исчезают.

Вот код программы:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
    string line;
    int i;
    string player[5];

    ifstream myfile ("1-Efes Pilsen.txt");

    if (myfile.is_open())
    {
        while ( myfile.good() )
        {
            for (i=0;i<5;i++)
            {
                getline (myfile,line);
                player[i] = line;
            }
            // after this point I still can use new variables
        }
    }
    else cout << "Unable to open file"; 

    cout << player[1]; // <--- NOT WORKING. WHY?

    myfile.close();   
}

1 Ответ

3 голосов
/ 17 декабря 2011

Хотя мне не ясно, как это не работает, я могу предположить , что в файле содержится больше содержимого, чем просто 5 строк (возможно, еще одна новая строка), что приводит к оценке условия whileв true, заставляя цикл for прочитать 5 строк (что приведет к сбою и ничего не прочитать) и заменить правильные значения в массиве строк дрянными (пустая строка).

Вместо того, чтобы иметьвнешний цикл while, вы, вероятно, хотите добавить условие в сам цикл for;что-то вроде:

for (i=0;i<5 && myfile.good();i++)
{
   getline (myfile,line);
   player[i] = line;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...