2016-04-07 33 views
-4

Bazı şeyleri bir stdio FILE * akışına açan ve yazan bir işleve sahibim. Daha sonra aynı akışa yazmak istediğim bir xml oluşturacak başka bir işlev çağırırım. XmlBuilder işlevinde iken, xmlbuilder işlevine bu açık akışı aktarabilir ve aynı akışa ve bıraktığı yerden devam edebilirim diye xmlbuilder işlevine xmlbuilder işlevine geri döndürebilir miyim? Tabiistdio akışını başka bir işleve geçirme C++

+6

Tek kelime yanıtı: Evet. – immibis

+0

Etiket (C++) ve mekanizma - C stili 'FILE *' – SergeyA

+0

hmmm'de korkunç bir uyumsuzluk var, bu garip, 'stream' ile birlikte 'c-style' etiketi vardı ama sadece üç tanesi ortaya çıktı. –

cevap

3

, böyle bir şey: Evet yapabilirsiniz

void writeOtherStuff(FILE* pFile) 
{ 
    fputs("some more data\n", pFile); 
} 

void myFunction() 
{ 
    FILE* pFile = fopen("myfile.txt", "w"); 
    if (!pFile) 
     return; 
    fputs("some data\n", pFile); 
    writeOtherStuff(pFile); 
    fclose(pFile); 
} 
2

. Bir FILE * işaretçisini geçmek, herhangi bir tür işaretçiyi iletmekten farklı değildir.

İlgili konular