2009-03-14 9 views
-4
#define pi 3.142 
void main() 
{ 
    float circum,r; 
    printf("entr radius"); 
    scanf("%f",&f); 
    area=2*pi*r; 
    printf("circum of the circle is =%f",f); 
} 

Wir haben ein anderes C-Programm zu schreiben, das eine Datei als Eingabe nimmt und ersetzt die Zeichenfolge „pi“ mit dem definierten WertWie akzeptiere ich benutzerdefinierte Variablen?

überall dort, wo variable definieren, ist es mit dem Wert I durch den Benutzer definiert ersetzen soll.

+0

können Sie die Frage umformulieren? –

+0

Also, was ist die Frage? –

+0

Woher kommt dieser Code? Ist diese Frage von Bedeutung? Es hat mehrere Fehler, semantische, syntaktische, Rechtschreibung und andere, nicht sicher, was daraus zu machen ist. –

Antwort

1

void ist kein Standard-Rückgabetyp für main. Verwenden Sie eine der folgenden Möglichkeiten:

int main(void) 

int main(int argc, char *argv[]) 

Sie benötigen die Datei zu lesen, analysieren jede Zeile und sehen, ob es sich um eine Makrodefinition ist und ersetzen. Etwas in den folgenden Zeilen:

int main(int argc, char *argv[]) { 
    /* assume: C file to be modified is 1st commandline parameter */ 
    /* write the modified file to stdout */ 
    FILE *fp = fopen(argv[ 1 ], "r"); 
    if (fp) { 
    char line[ 256 ]; /* change it to something suitable */ 
    while(fgets(line, sizeof line, fp) != NULL) { 
     if (strstr(line, "pi") != NULL) { 
     /* parse line, extract input value, change it */ 
     } 
     else puts(line); 
    } 
    fclose(fp); 
    } 
    return 0; 
} 
0

Nun, ich werde versuchen, Sie in der richtigen Richtung zu lenken, ohne dass Sie Ihre Hausaufgaben zu tun ...

In C, Haupt sollte immer einen int zurück. Um eine Datei als Eingabe zu akzeptieren, können Sie sie als Befehlszeilenargument angeben und von argv [] lesen oder Sie können die Tastatureingabe für Ihren Dateinamen verwenden, von dem Sie wissen, dass Sie ihn bereits kennen.

Diese drei Seiten sollten alle enthalten müssen Sie die Aufgabe beenden:

Verwandte Themen