C++ C++;ifstream不会打开任何文件

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>

每当我试图用ifstream打开一个文件时,它编译得很好,但不会打开该文件。 本例中的文件不存在,但ifstream*s*应该*s*为我创建该文件

我有一些示例代码,我认为应该可以工作,但没有打开或创建文件 “foo.txt”。是我遗漏了什么,还是我的IDE被搞砸了? 我正在使用VisualStudio2008VC++,顺便说一句

谢谢

代码如下:

#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搞混