私はファイル処理プロジェクトに取り組んでいました。ここでユーザーは何回入力を行いたいのかを指定し、その内容はファイル形式で表形式で保存されます。私のコードは:このループの振る舞いを把握できません
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int n;
FILE *fptr;
fptr=fopen("input.txt", "w");
if(fptr==NULL)
printf("The file could not be opened.");
printf("\nFile opened successfully.");
printf("\nHow many inputs do you want to make?");
scanf("%d", &n);
printf("\nEnter contents: \n\n");
char name[50];
int age;
float salary;
int i;
for(i=1;i<=n;i++)
{
printf("\nName(Not more than 50 character): ");
gets(name);
if(name[strlen(name)-1]=='\n')
name[strlen(name)-1]='\0';
printf("\nAge: ");
scanf("%d", &age);
printf("\nSalary: ");
scanf("%f", &salary);
fprintf(fptr, "%s\t\t%d\t$%.2f\n", name, age, salary);
}
}
私が遭遇する問題は、ループが正しく実行されないことです。私は名前を入力することはできません。それは名前をスキップし、年齢の入力を取るために直接進んでいます。私は、だから私は、私はここにいくつかの助けを得ることができると思います。よろしく。
おそらく、コンパイラ警告を有効にします。単純なタイプミスとして閉じる投票。 – Lundin
そして、C言語には 'gets 'という関数はなく、17年前に廃止され、5年前に完全に削除されました。あなたのCの学習の源は、時代遅れです。 – Lundin
これはタイプミスでした。それを指摘してくれてありがとう。名前を呼び出す必要はありません。 – Masquerade007