返回信息流就是先从控制窗口输入一些单词,然后将这些单词输入文件mj.dat中,再从文件mj.dat中读入这些单词给一个新的容器,再输出这些单词,大家帮忙看下错在哪,为什么执行时会连续出现两个错误对话框
应该不会是越界吧?
大家帮忙看看
#include<iostream>
#include<string>
#include<vector>
#include<fstream>
#include<sstream>
using namespace std;
int main()
{
vector <string> vs;string st;string fname="mj.dat";
while(cin>>st,st!="endoffile")
vs.push_back(st);
fstream file(fname.c_str(),ios::in|ios::out|ios::binary);
if(!file)
{cerr<<"open error!"<<endl;abort();}
for(vector<string>::iterator it=vs.begin();it!=vs.end();++it)
file.write((char *) it,(*it).size());
vector<string> vn;
file.seekg(0,ios::beg);
while(!file.eof())
{file.read((char *)&st,st.size());vn.push_back(st);}
for(it=vn.begin();it!=vn.end();++it)
cout<<*it<<endl;
return 0;
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #9312同步于 2008/7/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
C++primier 课后的习题,大家帮帮忙
majun
2008/7/7镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
我的编译结果
error C2440: “类型转换”: 无法从“std::_Vector_iterator<_Ty,_Alloc>”转换为“char *”
for(it=vs.begin(); it!=vs.end(); ++it)
file.write((char *) it,(*it).size());
有问题
【 在 majun (我走我路) 的大作中提到: 】
: 就是先从控制窗口输入一些单词,然后将这些单词输入文件mj.dat中,再从文件mj.dat中读入这些单词给一个新的容器,再输出这些单词,大家帮忙看下错在哪,为什么执行时会连续出现两个错误对话框
: 应该不会是越界吧?
: 大家帮忙看看
: ...................
file.read((char *)&st,st.size());
此时你想每次读出原始string长度的string,可是现在st里是啥?用st.size()大小来读不就错了么
另外。。。这段代码怎么能编译通过的。。。语法不止一个错啊
【 在 loop 的大作中提到: 】
: 我的编译结果
: error C2440: “类型转换”: 无法从“std::_Vector_iterator<_Ty,_Alloc>”转换为“char *”
: for(it=vs.begin(); it!=vs.end(); ++it)
: ...................
(char*)&it
【 在 loop 的大作中提到: 】
: 就算编译能通过,但是 file.is_open()的返回值也是 0
: 文件就没有被。。。
错太多了。。
mybays@spaceship:~/cpp$ g++ -o 1 1.cpp
1.cpp: In function ‘int main()’:
1.cpp:16: 错误: 从类型 ‘__gnu_cxx::__normal_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >’ 到类型 ‘char*’ 的转换无效
1.cpp:21: 错误: 在新的 ISO ‘for’ 作用域中,‘it’ 的名称查找有变化
1.cpp:15: 错误: 在 ‘it’ 使用过时的绑定
mybays@spaceship:~/cpp$