每当我尝试使用ifstream打开文件时,它编译得很好,但不会打开文件。 此示例中的文件不存在,但ifstream * s *应该* s *为我创建文件。
我有一些示例代码,我认为应该可以工作,但不会打开或创建文件 “foo.txt的”。有什么东西我不见了,或者我的IDE搞砸了? 我正在使用visual studio 2008 VC ++,btw
感谢
这是代码:
#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;
}
答案 0 :(得分:1)
问题是你正在使用in stream而不是out stream,正如Adam Liss所提到的那样(ios::out
而不是ios::in
)。您还需要确保在return 0;
之前关闭文件,以确保缓冲区中的所有内容都实际写入文件。
答案 1 :(得分:1)
open
函数不会以ios::in
模式创建文件;你需要使用ios::out
。