Saya ingin membuat buffer string untuk melakukan banyak pemrosesan, memformat dan akhirnya menulis buffer dalam file teks menggunakan sprintffungsionalitas C-style di Python. Karena pernyataan kondisional, saya tidak dapat menulisnya langsung ke file.
mis. kode semu:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
Jadi dalam file output kita memiliki o / p:
A= foo B= bar
C= ded
etc...
Edit, untuk memperjelas pertanyaan saya:
buf apakah buffer besar berisi semua string yang telah diformat menggunakan sprintf. Mengikuti contoh Anda, bufhanya akan berisi nilai saat ini, bukan nilai yang lebih lama. misalnya pertama di bufsaya tulis A= something ,B= somethingkemudian C= somethingditambahkan dalam yang sama buf, tetapi dalam jawaban Python Anda bufhanya berisi nilai terakhir, yang tidak saya inginkan - Saya ingin bufmemiliki semua yang printftelah saya lakukan sejak awal, seperti pada C.
def sprintf(buf, fmt, *args): ...
buf, bukan di akhir.) Mungkin akan lebih baik menggunakan array string, kemudian bergabung bersama-sama sebelum Anda menulis ke file.