[C] Polynom einlesen



  • Hallo,

    ich möchte ein Polynom der Form

    4xˆ8-13.5xˆ2+1x+1
    

    einlesen (Anzahl der Summanden ist variabel).

    Wie mache ich das am besten? Meine bisherige Lösung ließt immer nur einen Teil aus und macht das gleiche dann mit dem Rest-String. Es scheitert aber daran, dass sich das Eingabeformat nicht mehr rekonstruieren lässt, d.h. ich weiß nicht mehr bis wohin der erste Teil gegangen ist. Hier der Code:

    gets(buf);
    	char *ptr = buf;
    
    	while(0 != sscanf(ptr, " %fx^%d ", &factor, &pot))
    	{
    		printf("%f %d\n", factor, pot);
    		char bubu[1024];
    		sprintf(bubu, "%fx^%d", factor, pot);
    		ptr += strlen(bubu)+1;
    		printf("%d: %s\n", strlen(bubu), ptr);
    	}
    


  • Das wäre wohl eher was für das C-Forum. 😉

    martl schrieb:

    Es scheitert aber daran, dass sich das Eingabeformat nicht mehr rekonstruieren lässt, d.h. ich weiß nicht mehr bis wohin der erste Teil gegangen ist.

    Kannst du dir nicht den Index in einer Variable merken und dann von dort aus weiterlesen? Oder du hängst gleich einen Zeiger um, sodass er ins Innere der Zeichenkette zeigt..



  • Tschuldigung, das hatte ich ganz übersehen (aber nur weils nicht mit C... anfing 🙂 )

    Ich werde es dort nochmal posten



  • Das kann auch jemand verschieben...

    Aber mein Ratschlag hilft dir nicht weiter?



  • Falls es doch noch C++ sein darf kannst Du ja ebenfalls boost::spirit verwenden. Und wie man damit Polynome einliest steht hier: Klick

    Gut Schuß
    VuuRWerK 😉


Anmelden zum Antworten