2016-12-09 3 views
-1
geschrieben

ich würde diese Schleife beenden müssen, wenn eine neue Beziehung hinzugefügt wird! Solange es leer ist oder "Enter" gedrückt wird, muss es weitergehen.Progammieren in C: Endlosschleife beenden, wenn in

CODE: 
static char input[100]; 

int main() 
{ 
    printf("Press Ctrl+c to Exit!\n"); 
    while(1) 
    { 
    //Input (stdin) and output (stdout) declared in <stdio.h> library 
    fputs("esp>", stdout); 
    fgets(input,100,stdin); 

    if(input != 0) //here I can not change it !!! 
     return 1; 
    } 
return 0; 
} 

OUTPUT:

Press Ctrl+c to Exit! 
esp> (If "enter" is pressed) keep going 
esp> 
esp> s (if something wrong is written, exit) else, keep going 
+0

Ich verstehe nicht, was Ihre Frage ist. Es klingt so, als ob Sie die Schleife basierend auf einer Bedingung verlassen möchten, aber Ihr Code tut dies bereits. Das ist es, was die 'if'-Anweisung tut; wenn "input! = 0", bricht es aus der Schleife heraus und gibt sofort 1 zurück. Sonst bleibt es in der Schleife. Also ... was ist deine Frage? Welcher Teil des Codes funktioniert nicht? –

+0

Sie wissen, dass Sie eine Schleife mit "Pause" brechen können, oder? Also sollten Sie klären, was Ihr Problem ist –

+0

@IngoLeonhardt esp> s (wenn etwas falsch geschrieben wird, beenden) sonst, weitergehen Ich brauche Programm, um innerhalb der Schleife zu bleiben, solange es keine Eingaben gibt –

Antwort

0

Wenn Sie nur für leere Eingabe überprüfen möchten, versuchen Sie das?

while(1) 
{ 
    fputs("esp> ", stdout); 
    fgets(input, 100, stdin); 

    if(input[0] != '\n' && strlen(input)) 
    { 
     // Do something with input 
    } 
}