Saya ingin membuat buffer string untuk melakukan banyak pemrosesan, memformat dan akhirnya menulis buffer dalam file teks menggunakan sprintf
fungsionalitas 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, buf
hanya akan berisi nilai saat ini, bukan nilai yang lebih lama. misalnya pertama di buf
saya tulis A= something ,B= something
kemudian C= something
ditambahkan dalam yang sama buf
, tetapi dalam jawaban Python Anda buf
hanya berisi nilai terakhir, yang tidak saya inginkan - Saya ingin buf
memiliki semua yang printf
telah 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.