girişten basit formül dizelerini okuyarak, basit formüller (3*2
, 4+10
, 50/16
, vb. Gibi) girmemiz ve yalnızca toplama, çıkarma ve bit kaydırmayı kullanarak sonucu (ve geri kalanını) hesaplamamız gerekir. . Her neyse, daha sonra gelen üç girdi okumayı kullanabilirdim, ancak formülünü fgets()
ve sscanf()
kullanarak tek geçişte almayı denedim. İşte ne var:C, bir ev ödevi için
int *v; // value (left side)
int *m; // modifier (right side)
char *o; // operant
int res = sscanf(buffer,"%d%s%d",v,o,m);
Ama doğal, bu işe yaramazsa, o
hiçbir şey m
(m
değeri ne olursa olsun eşittir nerede ve bildirildiği andan itibaren)
Şimdi, bunu başarmanın doğru yolu ne olurdu?
NOT: Fazla boşlukları kırpmak için a trim function kullanıyorum.
Başlangıç değişkenlerinin nasıl bildirildiğini ihmal ettim (başlangıçta işaretçiler değiller, ancak işaretçisini "sscanf()" öğesinin bulunduğu bir işleve iletiyorum) –
Tamam. Sadece kontrol. Bu çok yaygın bir hatadır, sormam gerekti. – Dima