我正在寫一個C程序,該程序的目標是我只想輸入4個學生的結構細節。但是我的程序錯過了一些東西,所以我的程序在輸入第一個學生詳細信息後退出看看這裏請進入連我都選擇的學生人數爲4一個學生的詳細信息後C scanf()不解析我的輸入
# include <stdio.h>
struct student
{
int no;
char name[20];
float marks;
}s[10];
int main()
{
int i,n;
printf(" enter number of students ");
scanf("%d",&n);
printf(" enter student Number Name marks ");
for(i=0;i<n;i++)
{
scanf("%d%c%f",&s[i].no,&s[i].name,&s[i].marks);
}
return 0;
}
程序退出。
我甚至只輸入第一個學生的資料後,給這裏
[[email protected] raja]# gcc -o s s.c
[[email protected] raja]# ./s
enter number of students 4
enter student Number Name marks 1 as 12.03
[[email protected] raja]#
其退出程序的輸入。 幫助我。
輸入什麼你給它?你的輸入閱讀方案相當脆弱。 – Gian
@Gian我編輯了我的答案,請查看它。謝謝。 –
請不要使用「使用scanf」來讀取字符串,而是使用fgets(data,sizeof data,stdin) – FacundoGFlores