sprintfPython'da C tarzı bir işlevsellik kullanarak çok sayıda işlem yapmak, biçimlendirmek ve son olarak tamponu bir metin dosyasına yazmak için bir dize tamponu oluşturmak istiyorum . Koşullu ifadeler nedeniyle bunları doğrudan dosyaya yazamıyorum.
örneğin sözde kod:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
Yani çıktı dosyasında bu tür bir o / p var:
A= foo B= bar
C= ded
etc...
Düzenleyin, sorumu açıklığa kavuşturmak için:
buf sprintf kullanılarak biçimlendirilmiş tüm bu dizeleri içeren büyük bir arabellek var mı? Örneklerinize göre, bufeski değerleri değil, yalnızca mevcut değerleri içerecektir. mesela ilk bufben yazdım A= something ,B= somethingdaha sonra C= somethingaynı yer ekinde buf, ancak Python cevaplarında bufdeğil istediğim olan yalnızca son değer içerir - İstediğim bufhepsine sahip printfs ı gibi, başından beri yapmış C.
def sprintf(buf, fmt, *args): ...
buf.) Muhtemelen en iyisi, bir dizi dizge kullanmak ve dosyaya yazmadan önce bunları bir araya getirmek.