C++ 文件读取功能

C++ 文件读取功能,c++,string,file-io,vector,C++,String,File Io,Vector,我需要编写一个函数来读取文件,理想的情况是将该文件中的字符串存储到字符串的向量中 到目前为止,我有这样的想法: void loadCars() { fstream carFile; string car; carFile.open("car.txt"); if (carFile.is_open()) { while (getline(carFile, car)) { cout << car << "\

我需要编写一个函数来读取文件,理想的情况是将该文件中的字符串存储到
字符串的
向量中

到目前为止,我有这样的想法:

void loadCars() {
    fstream carFile;
    string car;
    carFile.open("car.txt");
    if (carFile.is_open()) {
        while (getline(carFile, car)) {
            cout << car << "\n";
        }
        carFile.close();
    } else {
        cout << "unable to open file" << endl;
    }
}
void装载车(){
fstream-carFile;
串车;
carFile.open(“car.txt”);
if(carFile.is_open()){
while(getline(carFile,car)){
库特
理想情况下,将该文件中的字符串存储到字符串向量中

只需按如下方式扩展函数,以在向量中收集结果:

void loadCars(std::vector<std::string>& result) {
    result.clear();
    fstream carFile;
    string car;
    carFile.open("car.txt");
    if (carFile.is_open()) {
        while (getline(carFile, car)) {
            result.push_back(car);
            cout << car << "\n";
        }
        carFile.close();
    }
else {
        cout << "unable to open file" << endl;
    }
}
void装载车(标准::向量和结果){
result.clear();
fstream-carFile;
串车;
carFile.open(“car.txt”);
if(carFile.is_open()){
while(getline(carFile,car)){
结果:推回(汽车);

cout您可以定义字符串向量,例如

#include <array>

std::vector<std::string> cars;

// Get your car...
cars.push_back(car);

#包括以供最新参考。

您面临的具体问题是什么?程序是否向您回读
“无法打开文件”
?如果是,该文件是否在可执行文件的目录中?如果无法打开该文件,则可能是当前工作目录不在您认为的位置。快速执行并将结果目录转储到
std::cerr
将有助于您了解“位置”是的。文件权限也可能不允许您打开它,但这有点牵强。最后,如果这是从Visual Studio运行的,则项目文件(.vcprojx)所在的文件夹是调试器启动的默认工作目录。请确保您的文件位于文件夹中。是的,感谢各位的反馈,我在放置文件的位置出错。由于我以前写入文件,它将该文件存储在调试文件夹之外。因此,我将该文件从该文件夹中取出以供读取,但我只是将cars文件放在t中他调试文件夹,它工作很好!谢谢大家!JAMESMILNER考虑接受一个答案,如果这些帮助了你。