我正在尝试学习C ++而且正在file input/output section上。我碰到了一堵砖墙,因为我的测试应用程序显然不能在Visual Studio Express 2012中工作。这是我的代码:
// ConsoleApp03.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream file_reader;
file_reader.open("C:\temp.txt");
// Test to see if the file was opened
if (!file_reader.is_open() ) {
cout << "Could not open file!" << endl;
return 255;
}
string line;
// Read the entire file and display it to the user;
while (getline(file_reader,line)) {
cout << line << endl;
}
// Close the file
file_reader.close();
return 0;
}
每次我运行时,我都会得到#34;无法打开文件!&#34;。我已经验证正在打开的文件确实存在,并且我有足够的权限阅读。我尝试过其他文本文件,包括在我的文档文件夹等其他不同位置,但结果总是一样的。我的文本文件非常简单,只包含两行文本。我很高兴在Notepad ++中打开这个文件,该文件没有特殊属性(系统,只读等)。我甚至尝试过将文件转换为ANSI和UTF-8,但没有运气。
我已经看过类似于此处的其他问题,但这些问题似乎并不适用于我(例如:ifstream::open not working in Visual Studio debug mode和ifstream failing to open)
只是为了显示文本文件有多简单,这是我从命令提示符输入它:
C:\>type C:\temp.txt
Hi
There
答案 0 :(得分:3)
这可能会或可能不会解决您的问题,但\
后跟char是转义序列。所以你的文件路径实际上是无效的。尝试
file_reader.open("C:\\temp.txt");
\t
实际上意味着标签。请参阅here。