私のプログラムが想定どおりに動作しているかどうかは本当に混乱しています。これは宿題ではなく、私が書いている楽しい行進狂気予測プログラムです。
char buffer[20];
char team1_name[20]; // 18 chars + new line + null
char team2_name[20];
printf("Who is team 1?\n");
fgets(buffer, sizeof(buffer), stdin);
strncpy(team1_name, buffer, sizeof(team1_name));
team1_name[strlen(team1_name) - 1] = '\0';
printf("\nWho is team 2?\n");
fgets(buffer, sizeof(buffer), stdin);
strncpy(team2_name, buffer, sizeof(team2_name));
team2_name[strlen(team2_name) - 1] = '\0';
printf("\nEnter %s's info:\n", team1_name);
好奇心から、20文字を超えるチーム名を入力すると、2番目の印刷ステートメントが完全にスキップされます。バッファオーバーフローから保護していますか?巨大なものを入れないのはユーザー次第ですか?フラッシュステートメントが必要ですか?
これは出力です:
Who is team 1?
wjefowiejfwoiejfweoifjweoifjweofijweoifj
Who is team 2?
Enter wjefowiejfwoiejfwe's info:
Wins in last 12:
Losses in last 12:
Points per game: