如何读取文本文件并从C ++中的每一行获取字符串?

时间:2017-12-02 16:44:30

标签: c++ ifstream

因此;我试图创建一种刽子手游戏,我想从互联网上下载的.txt文件中获取大约4900个单词,每个单词在不同的行中。我试图读取文件,但程序每次都会退出并出现错误(1),即没有找到文件。我已尝试使用绝对路径,并将文件放在工作目录中并使用相对路径,但每次我得到相同的错误。谁能看看,告诉我这有什么问题? 我是C ++的新手,我开始学习Java,现在我想尝试新的东西,所以我不确定代码的结构是否有错误。 谢谢大家!

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <vector>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;

vector<string> GetWords(){
    ifstream readLine;
    string currentWord;
    vector<string> wordList;

    readLine.open("nounlist.txt");

    while (getline(readLine, currentWord)) {
        wordList.push_back(currentWord);
    }


    if (!readLine) {
        cerr << "Unable to open text file";
        exit(1);
    }
    return wordList;
}

2 个答案:

答案 0 :(得分:2)

您在阅读完所有数据后检查了readLine。您可以使用以下代码:

if (readLine.is_open()) {
    while (getline(readLine, currentWord)) {
        wordList.push_back(currentWord);
    }
    readLine.close();
} else {
    cerr << "Unable to open text file";
    exit(1);
}

is_open函数用于检查readLine是否与任何文件相关联。

答案 1 :(得分:0)

使用此代码,

std::ifstream readLine("nounlist.txt", std::ifstream::in);
if (readLine.good())
{
    while (getline(readLine, currentWord)) 
    {
        wordList.push_back(currentWord);
    }
}