fstream et iterator - C++ - Programmation
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++.
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.
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 :
#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 :
--------------------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 !