pour mon affectation Je construis un tas, les données pour le tas proviennent d'un fichier. L'une des fonctions est d'obtenir les données, mais je ne parviens pas à comprendre la fonction de lecture ifstream() et je reçois tout à fait une erreur désagréable à cause de cela ce que j'ai:C++ tas et ifstream fonction de lecture
template<class T, class P>
void get_list(vector<T>& v, const char* file_loc, P func) {
T data;
ifstream inFile;
inFile.open("file_loc");
if (!inFile) {
cerr << "Error - unable to open input file\n";
exit(1);
}
inFile.read(&data, sizeof(T));
while (inFile) {
inFile.read(&data, sizeof(T));
insert(v,data,func);
}
inFile.close();
}
l'erreur que je reçois est:
prog7.h:53: error: no matching function for call to
‘std::basic_ifstream<char, std::char_traits<char> >::read(int*, long unsigned int)’
/usr/include/c++/4.3/istream:468: note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT,_Traits>::read(_CharT*, std::streamsize)
[with _CharT = char, _Traits = std::char_traits<char>]
toute aide serait très appréciée!
'inFile >> data' et' infile.read (...) 'font des choses assez différentes. –
@Marcelo Cantos: En effet. Je pensais juste qu'il devrait être au courant de laquelle de ces deux choses différentes il veut faire. – Akusete
Je viens juste de remarquer l'explication de binary-vs-text dans votre réponse. Vous avez mes excuses si j'étais déjà là quand j'ai écrit mon commentaire. –