小さなワーカーレジスタを作成しようとしましたが、アドレス値を取得する2番目のscanfを完全にスキップします。私は初心者なので、何が間違っているのか分かりません。コードは次のとおりです。scanfはスキップされます(?)
#include <stdio.h>
int main()
{
// var
char n[256], ad[256]; // n - Name, ad - Address
int i, ag; // i - Income, ag - Age
// code
printf("Welcome to the Worker Register\n\nWorker Data\n\nName: ");
scanf("%255[^\n]", n);
printf("Address: ");
scanf("%255[^\n]", ad);
printf("Age: ");
scanf("%d", &ag);
printf("Income: R$");
scanf("%d", &i);
printf("Worker %s\nAddress: %s\nAge: %d\nIncome: R$%d", n, ad, ag, i);
return 0;
}
本当にありがとうございます。
はい、私はそのスレッドとそのようないくつかのスレッドを読んだが、私はCコースの始めにいるので、ポインタは何か分からない。私はそれを学んだことがありましたが、私はそれをよく理解できませんでしたので、私は今のところ脇に置いて、勉強するときに戻ってきます。ありがとうございました! @編集:fgetsはどのライブラリからですか? – Gibas
'fgets()'は 'scanf()'と同じライブラリにあります。 – chux
バッファオーバーフローについては、 "fgets(n、255、stdin);" "fgets(n、256、stdin);"の代わりに? – Gibas