首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

看《c++程序设计语言》中关于迭代器和io的一个有关问题

2012-02-25 
看《c++程序设计语言》中关于迭代器和io的一个问题《c++程序设计语言》书上的源程序,编译不通过是什么原因:具

看《c++程序设计语言》中关于迭代器和io的一个问题
《c++程序设计语言》书上的源程序,编译不通过是什么原因:具体如下

源程序:
#include <iostream>
#include <vector>
#include <string>

using   namespace   std;

int   main()
{
        string   from;
        string   to;
        cin> > from> > to;
       
        ifstream   is(from.c_str());
        istream_iterator <string>   ii(is);
        istream_iterator <string>   eos;
       
        vector <string>   b(ii,eos);
        sort(b.begin(),b.end());
       
        ofstream   os(to.c_str())
        ostream_iterator <string>   oo(os, "\n ");
       
        unique_copy(b.begin(),b.end(),oo);
        return   !is.eof()||!os;
}


编译信息:

编译器:   Default   compiler
执行     g++.exe...
g++.exe   "D:\cppProject\iterator.cpp "   -o   "D:\cppProject\iterator.exe "         -I "C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include "     -I "C:\Dev-Cpp\include\c++\3.4.2\backward "     -I "C:\Dev-Cpp\include\c++\3.4.2\mingw32 "     -I "C:\Dev-Cpp\include\c++\3.4.2 "     -I "C:\Dev-Cpp\include "       -L "C:\Dev-Cpp\lib "  
D:\cppProject\iterator.cpp:   In   function   `int   main() ':
D:\cppProject\iterator.cpp:13:   error:   variable   `std::ifstream   is '   has   initializer   but   incomplete   type

D:\cppProject\iterator.cpp:14:   error:   `istream_iterator '   undeclared   (first   use   this   function)
D:\cppProject\iterator.cpp:14:   error:   (Each   undeclared   identifier   is   reported   only   once   for   each   function   it   appears   in.)
D:\cppProject\iterator.cpp:14:   error:   expected   primary-expression   before   '> '   token
D:\cppProject\iterator.cpp:14:   error:   `ii '   undeclared   (first   use   this   function)
D:\cppProject\iterator.cpp:15:   error:   expected   primary-expression   before   '> '   token
D:\cppProject\iterator.cpp:15:   error:   `eos '   undeclared   (first   use   this   function)

D:\cppProject\iterator.cpp:20:   error:   variable   `std::ofstream   os '   has   initializer   but   incomplete   type
D:\cppProject\iterator.cpp:21:   error:   expected   `, '   or   `; '   before   "ostream_iterator "
D:\cppProject\iterator.cpp:23:   error:   `oo '   undeclared   (first   use   this   function)



[解决办法]
修改如下:
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <algorithm>

using namespace std;

int main()
{
string from;
string to;


cin> > from> > to;

ifstream is(from.c_str());
istream_iterator <string> ii(is);
istream_iterator <string> eos;

vector <string> b(ii,eos);
sort(b.begin(),b.end());

ofstream os(to.c_str());
ostream_iterator <string> oo(os, "\n ");

unique_copy(b.begin(),b.end(),oo);
return !is.eof()||!os;
}
[解决办法]
加#include <iterator>

热点排行