在C ++ Windows 8.1和msvc 2013中打开文本文件

时间:2014-10-12 05:08:06

标签: c++ windows-8 fstream

我正在尝试从我的程序中打开一个文本文件。但我有几个奇怪的问题。

对于一个逃脱序列没有逃脱...

const char *“D:\\ assest \ thing.txt”= D:\\ assest \ thing.txt 和

const char *“D:\\ Assest \ thing.txt”= D:Assest \\ thing.txt 但

为什么两个只能在这个论坛上给我一个空位,这真是太不必要了!

const char *“D:\ assest \ thing.txt”= D:\ assest \ thing.txt正确的路径,我可以从调试器中将其复制到文件浏览器中然后弹出文件,但是std :: ifstream(filePath)和std :: ifstream :: open(filePath);失败。和fopen_s一样。

我甚至尝试使用ascii代码来连接字符串/但是在我分配了所有内存之后放弃了只发现strcat被折旧了,显然微软正在试图折旧C.我想在他们想到的所有Windows 8的成功之后他们应该让它骑。

我最初使用字符串,但在上述相同问题之后开始使用char数组。

我尝试了其他文本文件,甚至将文件放入项目目录中的每个文件夹中(虽然这对我没有好处,但我想我必须尝试)。

没有文件不会打开我能想象的任何情况。我作为管理员运行编译器,尝试读取不同的文件。重新启动电脑,擦一盏神灯。我没有想法

我缺少一个技巧,我的环境可能会受到责备吗?

代码

std::string path = "C:\assest\rock.txt";
obj.readOBJ(path);

void objImporter::readOBJ(std::string filePath)
{
std::ifstream OBJfile(filePath);
//OBJfile.open(filePath.c_str());

if (OBJfile.is_open())
{
是的,等等,等等,等等
OBJfile.close();

有没有人有任何见解?

由于

汤姆

1 个答案:

答案 0 :(得分:2)

似乎转义序列 正在工作。 \a是哔声字符,\r是回车符。你应该像这样逃避反斜杠(\\):

string path = "c:\\assets\\rock.txt";