J'ai un fichier texte nommé num.txt
dont le seul contenu est la ligne 123
. Ensuite, je donne les résultats suivants:Débutant C++: Passage d'un fstream à une fonction pour lire les données
void alt_reader(ifstream &file, char* line){
file.read(line, 3);
cout << "First Time: " << line << endl;
}
int main() {
ifstream inFile;
int num;
inFile.open("num.txt");
alt_reader(inFile, (char*)&num);
cout << "Second Time: " << num << endl;
}
La sortie est:
First Time: 123
Second Time: 3355185
Pouvez-vous me aider à comprendre comment obtenir un fstream qui est lu dans une fonction affecter encore la variable principale? Je le fais parce que alt_reader
en a vraiment beaucoup plus, mais c'est la partie sur laquelle je suis bloqué. Merci beaucoup pour l'aide.
MISE À JOUR: Utilisation des commentaires de Bill Oneal, j'ai écrit
void alt_reader(ifstream &file, stringstream &str, int n){
char buffer[n+1];
file.read(buffer, n);
buffer[n] = 0;
str << buffer;
cout << "First Time: " << buffer << endl; //First Time: 123
}
int main() {
ifstream inFile;
stringstream strm;
int num;
inFile.open("num.txt");
alt_reader(inFile, strm, 3);
cout << "Second Time: " << num << endl; //Second Time: 123
}
Merci. Des critiques avec ce qu'il y a maintenant?
Merci. Un conseil sur le passage d'un fstream et obtenir la valeur de lecture hors de la fonction (sans déclaration de retour?)? – physicsmichael
@ vgm64: Bien sûr. Voir éditer. –
@Bill ONeal: Je viens d'ajouter une tentative d'expansion de mon code avec votre technique. Ça marche. Qu'en pensez-vous? – physicsmichael