#include <stdio.h>
#include <stdlib.h>
struct test
{
int id;
char name[20];
};
int main()
{
struct test t1;
t1.id=1;
fflush(stdin);
fgets(t1.name,20,stdin);
print((&t1.name));
print1(t1.id,&(t1.name));
}
void print(struct test *name)
{
puts(name);
}
void print1(struct test id,struct test *name)
{
printf("\n%d\n",id);
puts(name);
}
Wenn ich laufe dieses Programm es für die Eingabe fragtWarum funktioniert Puts im folgenden Code nicht?
Test [Enter]
Ausgang kommt aus
Test (dann endet Programm)
Warum die ersten Puts gearbeitet und warum setzt in zweiter Funktion nicht? Ja, es gibt eine Option, komplette Struktur zu senden, aber ich möchte wissen, was hier falsch ist.
zu
zu
geändert werden sollte geändert werden,' ist falsch. Entfernen Sie es. –vielleicht Kompilierung mit allen Warnungen auf helfen würde –
Ich habe begonnen, Flush zu verwenden, wenn es notwendig ist, viele String-Variablen gleichzeitig zu nehmen, zum Beispiel string1, string2 mit fgets. Wenn ich nicht fflash() die Eingabe von String ist wierd – ekaf