Yalnızca içeriklerin 123
numaralı satırı olan num.txt
adlı bir metin dosyası var.C++ Newbie: Veri okumak için bir işlev için bir fstream geçiriliyor
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;
}
çıkışı:
First Time: 123
Second Time: 3355185
nasıl hala ana değişkeni atamak bir işlevde olduğu belirlenen bir fstream almak için beni anlamaya yardımcı olabilir Sonra şu var? Bunu yapıyorum çünkü alt_reader
gerçekten çok daha fazlası var, ama bu benim takılı olduğum kısım. Yardım için çok teşekkürler.
GÜNCELLEME: Bill Oneal adlı kullanma , ben
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
}
Teşekkür yazdım. Şimdi orada olanlarla ilgili herhangi bir eleştiri var mı?
Teşekkürler. Bir fstream geçirme ve okuma değerini fonksiyondan çıkarma konusunda herhangi bir öneri (dönüş bildirimi olmadan)? – physicsmichael
@ vgm64: Elbette. Düzenleme konusuna bakın. –
@Bill ONeal: Kodumu tekniğinizle genişletme girişiminde bulundum. İşe yarıyor. Bunun hakkında ne düşünüyorsun? – physicsmichael