C++ ifstream不会打开任何文件
每当我尝试使用ifstream打开文件时,它编译得很好,但不会打开文件。 这个例子中的文件不存在,但ifstream * s *应该为我创建文件。C++ ifstream不会打开任何文件
我有一些示例代码,我认为应该工作,但不打开或创建文件 “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;
}
是您正在使用的问题的在流,而不是一个输出流,正如亚当利斯提到(ios::out
而不是ios::in
)。您还需要确保在return 0;
之前关闭该文件,以确保缓冲区中的所有内容都实际写入文件。
只有当它是'ofstream'时才会这样吗? – Lander 2012-03-28 01:51:58
The OP的代码似乎没有写入'in'。 – 2012-03-28 01:52:08
@Lander你可能实际上是正确的,我倾向于让我的ifstream和ofstream混合起来 – 2012-03-28 01:53:29
open
函数不会在ios::in
模式下创建文件;你需要使用ios::out
。
它应该?人力资源管理。即使它创建了您的输入文件,您希望从文件中提取什么内容? – mkb 2012-03-28 01:49:23
您是否检查确保路线良好?尝试使用完整路径?另外,尽管可能并不重要,但可以使用'if(!in.good())' – Lander 2012-03-28 01:51:07
*输入*流不会创建文件。 – 2012-03-28 01:51:21