Ich habe eine Textdatei mit dem Namen num.txt
Wer ist nur Inhalt ist die Zeile 123
. Dann habe ich die folgenden:C++ Neuling: Übergabe eines fstream an eine Funktion zum Lesen von Daten
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;
}
Die Ausgabe lautet:
First Time: 123
Second Time: 3355185
Können Sie mir helfen, herauszufinden, wie ein fstream zu erhalten, die in einer Funktion gelesen wird, noch die Variable im Haupt zuweisen? Ich mache das, weil alt_reader
wirklich viel mehr hat, aber das ist der Teil, auf dem ich feststecke. Vielen Dank für die Hilfe.
UPDATE: Bill Oneal Kommentare verwenden, ich habe
geschriebenvoid 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
}
Dank. Irgendwelche Kritiken mit dem, was ist jetzt da?
Danke. Irgendwelche Ratschläge zum Übergeben eines fstream und zum Abrufen des gelesenen Wertes aus der Funktion (ohne eine Rücksendeanweisung?)? – physicsmichael
@ vgm64: Sicher. Siehe Bearbeiten. –
@Bill ONeal: Ich habe gerade einen Versuch hinzugefügt, meinen Code mit Ihrer Technik zu erweitern. Es klappt. Was denkst du darüber? – physicsmichael