fstream et iterator

fstream et iterator - C++ - Programmation

Marsh Posté le 05-02-2004 à 18:23:18    

Je sui face à un mystère. J'ai un exemple mais il ne marche pas. Cette exemple est à plusieurs endroits sur internet ( par exemple ici ) ainsi que dnas le livre de Stroustrup.
 
voici l'exemple donc :
 

Citation :

#include<fstream>
#include<iostream>
#include<algorithm>
#include<iterator>
#include<string>
#include<vector>
 
using namespace std;
 
 
 
int main()
{
 string from, 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;
}


 
 
et visual 6 me sort le mesage d'erreur suivant :

Citation :

--------------------Configuration: fichier - Win32 Debug--------------------
Compiling...
feuil01.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\fichier\feuil01.cpp(22) : error C2664: '__thiscall std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<c
har,struct std::char_traits<char>,class std::allocator<char> > > >::std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,c
lass std::allocator<char> > > >(unsigned int,const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,const class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<c
har> > > & )' : cannot convert parameter 1 from 'class std::istream_iterator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,char,struct std::char_traits<char> >' to 'unsigned int'
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Error executing cl.exe.
 
fichier.exe - 1 error(s), 0 warning(s)


 
Est ce que quelqun a déjà rencontré ça ? j'ai l'impression que le problème est dans la conversion de eos en int. J'en déduis que le constructeur du vector b soughaite un int mais je ne vois pas pourquoi il en voudrait un.
 
D'où mon appel au secours ;)
merchi !

Reply

Marsh Posté le 05-02-2004 à 18:23:18   

Reply

Marsh Posté le 05-02-2004 à 18:28:47    

C'est de Visual 6 qu'on parle quand même. Visual C++ 6 n'est pas un compilateur C++.

Reply

Marsh Posté le 05-02-2004 à 19:13:08    

la ""stl"" de vc++6 est tres loin de la stl originale, trop loin dans ton cas.


---------------
-( BlackGoddess )-
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed