2 zhuyongqingacm zhuyongqingacm 于 2016.02.02 20:13 提问

vs2013 文件操作为什么fstream没有绑定这个文件
//#define _CRT_SECURE_NO_DEPRECATE
//#include<stdio.h>
#include<vector>
#include<iostream>
#include<fstream>
#include<string>
#include<string.h>
using namespace std;
vector<int> a;
//int transf(int x,int index)
//{
//  int sum = 0;
//  while (x != 0)
//  {
//      sum += x%index;
//      x = x / index;
//  }
//  return sum;
//}
int main()
{
    string file = "‪C:\\Users\\june\\Desktop\\output1.txt";
    fstream out;// open("‪C:\\Users\\june\\Desktop\\output1.txt");
    ////out.open("‪C:\\Users\\june\\Desktop\\output1.txt");
    out.open(file.c_str(), ios::in);
    out << 1 << endl;

    return 0;

}

5个回答

wangyu088
wangyu088   2016.02.03 10:56
已采纳

你open的方式不对,ios::in是从文件到内存,而且要用>>。写到文件中用的是ios::out。另外,切记先打开文件,然后操作文件,最后关闭文件。养成良好的编程习惯很重要。
int main()
{
fstream outfile("C:\Users\june\Desktop\output1.txt",ios::out);
outfile<<1<<endl;
outfile.close();

return 0;

}

zhuyongqingacm
zhuyongqingacm 太对了,是ios状态错了
接近 2 年之前 回复
lm_whales
lm_whales   Rxr 2016.02.02 23:40

out.open(file.c_str(), ios::in);
out << 1 << endl;
你这是打算做啥?读方式打开。向里面写数据?i**ios::in**
缺省方式,和,明确表示os::in 都表示要以读方式打开文件,于是只能读
要用>> 读出数据,而不是<<写入数据。ios::out 是写方式打开

a1004032158
a1004032158   2016.02.02 23:54

ios::in 表示读方式打开,你用<<表示向文件写东西,不一致

caozhy
caozhy   Ds   Rxr 2016.02.02 21:25

斜杠没有看出什么问题。但是你是不是用vc++ 6.0在win7以上兼容方式运行的,那样的话,你的路径会被重新定位,而不是在桌面上。

zhuyongqingacm
zhuyongqingacm 我用的vs2013,操作系统是win8。应该不是操作系统的事,之前用vs2010写的时候可以
接近 2 年之前 回复
jgt_insect
jgt_insect   2016.02.02 20:18

把双引号内的路径单斜杠改双斜杠试试

zhuyongqingacm
zhuyongqingacm 并不行
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!