C ++ ifstream не будет открывать файлы - PullRequest
0 голосов
/ 28 марта 2012

Всякий раз, когда я пытаюсь открыть файл с помощью ifstream, он прекрасно компилируется, но не открывает файл.Файл в этом примере не существует, но если streamstream * 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;
}

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Функция open не будет создавать файлы в режиме ios::in; вам нужно использовать ios::out.

1 голос
/ 28 марта 2012

Проблема в том, что вы используете входящий поток вместо выходного потока, как упоминал Адам Лисс (ios::out вместо ios::in). Вам также необходимо убедиться, что вы закрыли файл до return 0;, чтобы убедиться, что все содержимое буфера действительно записано в файл.

...