我一直在這裏關於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.
編輯:從.cpp文件中完整的代碼更新的代碼清單。
更新:該文件不在當前工作目錄中。這是項目文件所在的目錄。將它移到那裏,它在VS.NET中調試時工作。
其工作目錄是你的問題。當你從命令行運行它時,工作目錄是顯而易見的。當你在調試器中運行它時,你需要明確地設置工作目錄,否則它不是那麼明顯(檢查調試器選項)。 – 2009-04-29 00:41:49
感謝您發佈更新部分。自從我需要考慮工作目錄處於調試模式的位置以來,這已經過去了一分鐘。爲我節省了幾分鐘的頭部劃傷。 – 2014-06-25 01:55:38