兄弟们帮我看看啊,为什么文件的输出是空白呢??

bluemaths 2008-11-04 08:11:56
程序很简单,以vector中的字符串作为文件名绑定到文件流,然后以此文件为中介输出字符。
为什么输出为空呢?
请高手解惑。
#include <cstdlib>
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
using namespace std;

int main(int argc, char *argv[])
{
vector<string> file;
file.push_back("this.txt");
file.push_back("is.txt");
file.push_back("me.txt");
ifstream input;
ofstream output;
char a='s';
vector<string>::const_iterator it=file.begin();
while(it!=file.end()){
string s;
input.open(it->c_str());
output.open(it->c_str());
output<<a;
if(!input)
break;
input>>s;
cout<<s<<endl;
input.close();
output.close();
input.clear();
output.clear();
++it;
a++;
}
system("PAUSE");
return EXIT_SUCCESS;
}
...全文
160 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluemaths 2008-11-04
  • 打赏
  • 举报
回复
哦,这么回事,C++ Prima讲的没这么细啊。
谢谢楼上各位,特别是 wuyu637 。
OenAuth.Core 2008-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 phisherr 的回复:]
首先你要确定
input.open(it->c_str());
output.open(it->c_str());
这两句的文件打开了没有;

然后在output.close();
前input>>s; 是无效的
[/Quote]
楼上已经说的很清楚了。
lann64 2008-11-04
  • 打赏
  • 举报
回复
就不能写完文件,关闭了,再打开读文件?
两个流指向同一个文件,同时打开,很容易出问题。要么干脆绑定两个流算了。
phisherr 2008-11-04
  • 打赏
  • 举报
回复
首先你要确定
input.open(it->c_str());
output.open(it->c_str());
这两句的文件打开了没有;

然后在output.close();
前input>>s; 是无效的
wuyu637 2008-11-04
  • 打赏
  • 举报
回复
文件的读操作是排他锁,就是说这个时候不允许其他的对象访问这个文件。
wuyu637 2008-11-04
  • 打赏
  • 举报
回复

#include <cstdlib>
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
using namespace std;

int main(int argc, char *argv[])
{
vector <string> file;
file.push_back("this.txt");
file.push_back("is.txt");
file.push_back("me.txt");
ifstream input;
ofstream output;
char a='s';
vector <string>::const_iterator it=file.begin();
while(it!=file.end()){
string s;
input.open(it->c_str());
output.open(it->c_str());
output << a;
output.close();
output.clear();
if(!input)
{
cout << "open fail" << endl;
break;
}
input >> s;
cout << s <<endl;
input.close();

input.clear();

++it;
a++;
}
system("PAUSE");
return EXIT_SUCCESS;
}

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧