2016-12-09 3 views
-1

Je devrais quitter cette boucle si une nouvelle relation est ajoutée! Tant qu'il est vide ou que vous appuyez sur "Entrée", il doit continuer à fonctionner.Programmation en C: Quitter une boucle sans fin si elle est écrite à l'intérieur

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; 
} 

SORTIE:

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

Je ne comprends pas votre question. Il semble que vous souhaitiez quitter la boucle en fonction de certaines conditions, mais votre code le fait déjà. C'est ce que fait l'instruction 'if'; si 'input! = 0', il sort de la boucle et renvoie 1 immédiatement. Sinon, il continue à boucler. Alors ... quelle est votre question? Quelle partie du code ne fonctionne pas? –

+0

Vous savez que vous pouvez casser une boucle avec 'break', n'est-ce pas? Donc, vous devriez clarifier ce que votre problème est –

+0

@IngoLeonhardt esp> s (si quelque chose de mal est écrit, quitter) sinon, continuez J'ai besoin de programme à l'intérieur tant que boucle, tant qu'il n'y a pas d'entrées –

Répondre

0

Si vous voulez juste pour vérifier l'entrée vide, essayez ceci?

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

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