VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3758|回复: 26

文件输入输出问题

[复制链接]

1

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-12-16 15:30:01 | 显示全部楼层 |阅读模式
下面程序只能把s1内容写到文件中,却不能从文件中读不出来,请问哪里错了?
#include<iostream>
#include<conio.h>
#include<fstream>


using namespace std;

int main()
{ofstream out("a.txt");
ifstream  in("a.txt");
string s1,s2;

  s1="abcd 1234\n";
  out<<s1;
  in>>s2;

  cout<<"s2="<<s2<<endl;//s2为空~~~~

out.close();
in.close();
getch();
return 0;
}

回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-12-16 16:45:01 | 显示全部楼层
a.txt文件需要路径
回复

使用道具 举报

0

主题

25

帖子

14.00

积分

新手上路

Rank: 1

积分
14.00
发表于 2020-12-16 18:00:01 | 显示全部楼层
#include<iostream>
#include<conio.h>
#include<fstream>


using namespace std;

int main()
{ofstream out("a.txt");
ifstream  in("a.txt");
string s1,s2;

  s1="abcd 1234\n";
  out<<s1;
out.close();
in>>s2;

  cout<<"s2="<<s2<<endl;//s2为空~~~~


in.close();
getch();
return 0;
}
回复

使用道具 举报

1

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-12-16 18:30:01 | 显示全部楼层
不需要吧,a.txt是在本地工程文件夹中
回复

使用道具 举报

0

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-12-16 18:45:01 | 显示全部楼层
路径不是问题,不过我的vc6.0不能编译通过
回复

使用道具 举报

0

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-12-16 19:45:01 | 显示全部楼层
请问是不是要加什么lib吗?
回复

使用道具 举报

1

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-12-16 23:45:02 | 显示全部楼层
我想建立一个既可以输入又可以输出的文件流,这样就可以不必建立ifstream和ofstream,不知道该怎么做?下面这个程序运行时没有建立a.txt文件,不知道又哪错了。
#include<iostream>
#include<conio.h>
#include<fstream>


using namespace std;

int main()
{fstream file("a.txt",ios::in|ios::out);
string s1,s2;

  s1="abcd 1234\n";
  file<<s1;   //写不进a.txt中
  file>>s2;
  cout<<"s2="<<s2<<endl;//s2为空
  
  file.close();

getch();
return 0;
}
回复

使用道具 举报

0

主题

37

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-12-17 10:45:02 | 显示全部楼层
输出缓冲的问题
#include<iostream>
#include<conio.h>
#include<fstream>
#include<string>

using namespace std;

int main()
{ofstream out("a.txt");
ifstream  in("a.txt");
string s1,s2;

  s1="abcd 1234\n";
  out<<s1;
  out.close();//或者out.flush();
  getline(in,s2);

  cout<<"s2="<<s2<<endl;//s2为空~~~~

in.close();
getch();
return 0;
}
回复

使用道具 举报

0

主题

37

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-12-17 11:15:01 | 显示全部楼层
在文件没有关闭而缓冲未满之前,字符串实际上没有被写到文件中去,除非你手动刷新流。
回复

使用道具 举报

0

主题

25

帖子

14.00

积分

新手上路

Rank: 1

积分
14.00
发表于 2020-12-17 15:15:01 | 显示全部楼层
out<<s1;
  out.seekp(0);
//  或 out.close();
  in>>s2;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表