Ich muss es so machen, dass diese Schleife die Eingabe stoppt, wenn nichts eingegeben wird (die Eingabetaste wird gedrückt) für charTeacherFirstName. Ich habe das, aber das Problem ist, dass, wenn die Eingabetaste gedrückt wird, die Schleife einfach weiter nach Dingen fragt, als ob sie das Leerzeichen nicht gelesen hätte.Wie man die Schleife in diesem Code stoppt, wenn eine Leerzeile eingegeben wird in c
int main(void)
{
int intTeacherSalary[50];
char charTeacherFirstName[50][50];
char charTeacherLastName[50][50];
do
{
printf("Enter the teacher's first name: ");
fgets(charTeacherFirstName, 50, stdin);
if (charTeacherFirstName == '\n')
{
break;
}
else
{
printf("Enter the teacher's last name: ");
fgets(charTeacherLastName, 50, stdin);
printf("Enter teacher's salary: ");
fgets(intTeacherSalary, 50, stdin);
}
} while (charTeacherFirstName != '\n');
}
und Ihren Zustand in der 'while' auch falsch und nutzlos, weil Ihr' if' es bereits behandelt. Kompiliere mit Warnungen auf und _read_ sie. Sie müssen nicht einmal hier posten. –
Außerdem können Sie 'fgets()' nicht verwenden, um 'int' in' intTeacherSalary' zu lesen.Oder zumindest versucht dies zu einem undefinierten Verhalten zu führen, das wahrscheinlich nicht das ist, was Sie erwarten oder wollen. Vielleicht möchten Sie in ein 'char'-Array einlesen und dann das' int' (falls vorhanden) mit 'sscanf()' auslesen. –
'if (charTeacherFirstName == '\ n')' Sie können die Zeichengleichheit in C auf diese Weise nicht testen. –