Как загрузить файл в C ++? - PullRequest
       1

Как загрузить файл в C ++?

0 голосов
/ 20 октября 2019

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

#include <string>
#include <vectors>

/*
 This is a function I am using.
 I want to upload the file contents in these vectors 
 The file has a questions and 4 answers so the questions is in one vector 
 and each answer is in a different vector.
*/

string readfile(vector<string> &q1, vector<string> &a1, vector<string> &a2,
                vector<string> &a3, vector<string> &a4) {
  string line, filename;
  ifstream file;

  cout << "enter file name:";

  cin.ignore();

  getline(cin, filename);

  file.open(filename.c_str());

  if (file.fail()) {
    cout << "Unable to open file datafile.txt\n\n" << endl;
  } else {
    while (getline(file, line)) {
      if (line.size() > 0) {
        getline(file, line);

        q1.push_back(line);

        if (line.size() > 0) {
          getline(file, line);

          a1.push_back(line);
        }
        if (line.size() > 0) {
          getline(file, line);

          a2.push_back(line);
        }

        if (line.size() > 0) {
          getline(file, line);

          a3.push_back(line);
        }

        if (line.size() > 0) {
          getline(file, line);

          a4.push_back(line);
        }
      }
    }
  }

  file.close();
}

В результате всегда получается "Невозможно открыть файл данных .txt"

1 Ответ

0 голосов
/ 20 октября 2019

Вы игнорируете ввод:

cin.ignore();

Если вы удалите эту строку кода, он будет правильно читать имя файла, который вы хотите открыть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...