2つの問題がありますが、これはより差し迫った問題です...
printf("Enter the term: "); scanf("%d", &input);
fprintf(inputf, "%d,", input);
printf("Enter the id: "); scanf("%d", &input);
fprintf(inputf, "%d,", input);
printf("Enter last name: "); scanf("%s", name);
fprintf(inputf, "%s,", name);
printf("Enter first name: "); fgets(name, 15, stdin);
fprintf(inputf, "%s,", name);
printf("Enter the subject: "); scanf("%s", subsec);
fprintf(inputf, "%s,", subsec);
printf("Enter the catalog number: "); scanf("%d", &input);
fprintf(inputf, "%d,", input);
//ISSUE HERE!
printf("Enter the section: "); scanf("%s", subsec);
fprintf(inputf, "%s\n", subsec);
この情報をすべて入力し、最後の変数エントリで Enter キーを押すたびに、「実行時チェックの失敗 #2 - 変数 'subsec' の周りのスタックが壊れています」というウィンドウが表示されます。私は続けることができ、プログラムは私が望んでいることをほぼ実行し、機能しますが、なぜこれが起こっているのですか?
私の2番目の部分は、姓を入力してから名を入力したいときです.firstname文字列変数のEnterキーを押すと、「\ n」文字が取り込まれます.姓名は、空白を含む文字列を保持できる必要があります。どうすれば一石二鳥で二羽の鳥を殺すことができますか? fget を使用して空白を保持できるようにしましたが、「\n」キャプチャの問題が発生しましたが、scanf に戻すと、空白を保持できません!
編集:これはサブ秒です
char subsec[MAX_SUBSEC];
MAX_SUBSEC は 3 に設定されています。ご覧のとおり、以前は使用していましたが、2 番目の scanf (サブジェクトではなく、セクション用のもの) が subsec の入力の元の使用法を上書きすると考えました。私は間違っていると言うつもりですか? そして、私はこれを行うことを許可されていないため、問題は...
件名の入力は「CSE」、セクションの入力は「R01」になります。はい、これはすべてファイルに入れられます。