Wenn ich diesen Code ausführen:fgets nicht die Speicherung der gelieferten Eingaben in den Zielvariablen
#include<stdio.h>
#include<stdlib.h>
int main()
{
char name , age , gender , male;
printf("Please enter your name \n");
fgets(name, 20 ,stdin);
printf("Please enter your age \n");
fgets(age , 2 , stdin);
printf("Please enter your gender \n");
fgets(gender , 7 , stdin);
atoi(age);
{
if (age < 50 && gender == male)
printf(" You're fit to play\n Welcome player ,%s \n",name);
else printf("Sorry , %s. You're not fit to play", name);
}
return 0;
}
ich diese Ausgabe:
please enter your name
please enter your age
please enter your gender
you're fit to play
welcome player, (null)
Und das sind die Warnungen i vom Compiler bekommen in meinem Codeblöcke:
||=== Build: Release in justexploring1 (compiler: GNU GCC Compiler) ===|
D:\Project\C language\justexploring1\main.c||In function `main':|
D:\Project\C language\justexploring1\main.c|8|warning: passing arg 1 of `fgets' makes pointer from integer without a cast|
D:\Project\C language\justexploring1\main.c|10|warning: passing arg 1 of `fgets' makes pointer from integer without a cast|
D:\Project\C language\justexploring1\main.c|12|warning: passing arg 1 of `fgets' makes pointer from integer without a cast|
D:\Project\C language\justexploring1\main.c|13|warning: passing arg 1 of `atoi' makes pointer from integer without a cast|
D:\Project\C language\justexploring1\main.c|16|warning: format argument is not a pointer (arg 2)|
D:\Project\C language\justexploring1\main.c|17|warning: format argument is not a pointer (arg 2)|
D:\Project\C language\justexploring1\main.c|6|warning: 'name' might be used uninitialized in this function|
D:\Project\C language\justexploring1\main.c|6|warning: 'age' might be used uninitialized in this function|
D:\Project\C language\justexploring1\main.c|6|warning: 'gender' might be used uninitialized in this function|
D:\Project\C language\justexploring1\main.c|6|warning: 'male' might be used uninitialized in this function|
||=== Build finished: 0 error(s), 10 warning(s) (0 minute(s), 0 second(s)) ===|
Es ignoriert völlig fgets
und fordert nicht für jede Eingabe. behandelt immer wenn Aussage als wahr. und verwendet immer (Null) für name
.
Können Sie mir bitte sagen, was mit meinem Code nicht stimmt? Ich wurde einmal aufgefordert, fgets
anstelle von scanf
und gets
zu verwenden. ist es erwähnenswert, dass scanf
gab mir auch ähnliche Probleme.
Tun Sie sich einen Gefallen: ** Schalten Sie alle Compiler-Warnungen ein und beachten Sie sie **. – pmg
Ich habe der Frage nur Compiler-Warnungen hinzugefügt. Es gibt eine ganze Reihe von ihnen. –
strcmp? Ich kenne diese Funktion nicht. Kannst du mir zeigen, wie es benutzt wird? –