C++ C++;ifstream不会打开任何文件
每当我试图用ifstream打开一个文件时,它编译得很好,但不会打开该文件。 本例中的文件不存在,但ifstream*s*应该*s*为我创建该文件 我有一些示例代码,我认为应该可以工作,但没有打开或创建文件 “foo.txt”。是我遗漏了什么,还是我的IDE被搞砸了? 我正在使用VisualStudio2008VC++,顺便说一句 谢谢 代码如下:C++ C++;ifstream不会打开任何文件,c++,visual-c++,ifstream,C++,Visual C++,Ifstream,每当我试图用ifstream打开一个文件时,它编译得很好,但不会打开该文件。 本例中的文件不存在,但ifstream*s*应该*s*为我创建该文件 我有一些示例代码,我认为应该可以工作,但没有打开或创建文件 “foo.txt”。是我遗漏了什么,还是我的IDE被搞砸了? 我正在使用VisualStudio2008VC++,顺便说一句 谢谢 代码如下: #include <stdio.h> #include <iostream> #include <fstream>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
ifstream in;
string hold;
in.open("foo.txt",ios::in);
if(!in){
cerr << "Couldn't open file!" << endl;
}
in >> hold;
cout << hold << endl;
system("pause");
return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main(){
如果输入;
字符串保持;
in.open(“foo.txt”,ios::in);
如果(!in){
cerr控股;
正如Adam Liss所提到的(ios::out
而不是ios::in
),问题在于您使用的是in-stream而不是out-stream。您还需要确保在返回0;
之前关闭文件,以确保缓冲区中的所有内容都已写入文件。打开
功能将不会在ios::in
模式下创建文件;您需要使用ios::out
它应该这样做。Hrm。即使它创建了您的输入文件,您会怎么做是否希望从文件中提取?是否检查路径是否正确?是否尝试使用完整路径?另外,虽然可能不重要,但如果(!in.good())尝试使用if
输入流不会创建文件。如前所述,ifstream是一个输入流,所以如果它不存在,它也不会创建文件。我总是想到>>或者只有当它是流的?@Lander你可能是对的。我倾向于把ifstream和ofstream搞混