我正在處理一個文件處理項目,其中用戶將指定他想要輸入多少次,並且內容將以表格格式存儲在文件中。我的代碼是:找不到這個循環行爲
#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);
}
}
我遇到的問題是循環無法正常執行。我無法輸入名稱。它跳過名稱,直接進行年齡輸入。我試圖與fgets()和scanf(「%[^ \ n]的S,名),沒有用。所以我希望我可以在這裏得到一些幫助。問候。
啓用編譯器警告,也許。投票結束爲簡單的錯字。 – Lundin
請注意,在C語言中沒有稱爲'gets'的函數,它在17年前已經過時並且在5年前被徹底刪除。你的學習來源C完全過時了。 – Lundin
這是一個錯字。感謝您指出。不需要爲此命名。 – Masquerade007