#include <stdio.h>
int main() {
char str[50];
printf("Enter a string : ");
gets(str);
printf("You entered: %s", str);
return(0);
}
ich den Code auf Eclipse läuft, erwartete ich das folgende Ergebnis zu erhalten:Mit gets() und printf() zusammen in C liefert unerwartete Ergebnisse
Enter a string : abcde
You entered: abcde
aber wenn ich das Programm ausführen, Die erste print-Anweisung wird nicht in der Konsole angezeigt, und nachdem ich eine beliebige Zeichenfolge eingegeben habe, schlägt das Programm fehl. Kann mir jemand sagen, warum das passiert ist? Kannst du mir auch sagen, wie ich meinen Code reparieren kann, um das erwartete Ergebnis zu erhalten?
[Verwenden Sie nicht 'gets()', es ist gefährlich] (http://stackoverflow.com/q/1694036/2173917). Verwenden Sie stattdessen ['fgets()'] (https://linux.die.net/man/3/fgets). –
Was meinst du damit, dass es "versagt"? * Wie * scheitert es? Stürzt es ab? Sie erhalten unerwartete Ergebnisse? Bitte erläutern. –
* "Die erste Druckanweisung wird nicht in der Konsole angezeigt" * Versuchen Sie 'fflush (stdout);' nach dem 'printf'. –