【发布时间】:2014-03-24 16:46:49
【问题描述】:
我需要编写一个函数来读取文件,并且理想情况下将该文件中的字符串存储到strings 的vector 中。
到目前为止,我有这样的事情:
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;
}
}
谁能帮帮我,我需要这个函数做的就是从一个包含四个字符串的文本文件中读取:
汽车1
汽车2
汽车3
汽车4
我想阅读它们并将它们理想地放入向量中。 cout 纯粹是为了让我尝试测试它是否有效,但它无法打开文件。
【问题讨论】:
-
您面临的具体问题是什么?
-
程序是否向您回读
"unable to open file"?如果是,该文件是否在您的可执行文件的目录中? -
如果您无法打开文件,很可能您当前的工作目录不在您认为的位置。快速执行
getcwd()并将生成的目录转储到std::cerr将帮助您了解您的“位置”。文件权限也有可能不允许您打开它,但这有点牵强。最后,如果这是从 Visual Studio 运行的,则 project 文件 (.vcprojx) 所在的文件夹是调试器启动的默认工作目录。确保您的文件在文件夹中。 -
是的,感谢大家的反馈,我在放置文件的位置出错了。由于我之前写过文件,所以它将该文件存储在调试文件夹之外。所以我把文件从那个文件夹里拿出来阅读,但是我只是把汽车文件放在调试文件夹里,它工作得很好!谢谢大家!
-
@JamesMillner 如果这些对您有帮助,请考虑接受其中一个答案。