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

visual C++ ifstream will not open any files

本文关键字:任何 文件 C++ifstream visual      更新时间:2023-10-16

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

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

感谢

这是代码:

#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;
}

正如Adam Liss提到的那样,问题是您使用的是入流而不是出流(ios::out而不是ios::in)。您还需要确保在return 0;之前关闭文件,以确保缓冲区中的所有内容都实际写入文件。

open函数不会在ios::in模式下创建文件;您需要使用ios::out