Я был на всех вопросах ifstream здесь, и я все еще испытываю трудности при чтении простого текстового файла. Я работаю с Visual Studio 2008.ifstream :: open не работает в режиме отладки Visual Studio
Вот мой код:
// CPPFileIO.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream>
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream infile;
infile.open("input.txt", ifstream::in);
if (infile.is_open())
{
while (infile.good())
cout << (char) infile.get();
}
else
{
cout << "Unable to open file.";
}
infile.close();
_getch();
return 0;
}
Я подтвердил, что input.txt файл находится в правильном «рабочий каталог», проверив значение argv[0]
. Метод Open просто не работает.
У меня также есть проблемы с отладкой - не могу ли я установить часы на infile.good()
или infile.is_open()
? Я получаю
Error: member function not present.
EDIT: Обновленный листинг кода с полным кодом из .CPP файла.
UPDATE: Файл не был в текущем рабочем каталоге. Это каталог, в котором находится файл проекта . Перемещался там, и он работает при отладке в VS.NET.
Его рабочий каталог, который является вашей проблемой. Whem вы запускаете его из командной строки, рабочий каталог очевиден. Когда вы запустите его в отладчике, вам нужно явно указать рабочий каталог, иначе это не так очевидно (проверьте параметры отладчика). –
Благодарим за публикацию раздела обновления. Прошла минута, так как мне нужно было подумать о том, где рабочий каталог находится в режиме отладки. Сэкономил мне несколько минут царапин на голове. –