我在使用scanf()
將數據存儲到工會時遇到了一個奇怪的問題。使用scanf()進行用戶輸入時出錯
這裏是我的代碼
#include <stdio.h>
union Student
{
float score;
char grade;
};
int main(void)
{
union Student jack;
printf("Enter student score : ");
scanf("%f", &jack.score);
printf("Score : %f", jack.score);
jack.score=0;
printf("Enter student grade : ");
scanf("%c", &jack.grade);
printf("Grade : %c", jack.grade);
}
我得到以下輸出
[email protected]:~/Desktop$ ./union
Enter student score : 12
Score : 12.000000Enter student grade : Grade :
,但如果我我的代碼更改爲:
#include <stdio.h>
union Student
{
float score;
char grade;
};
int main(void)
{
union Student jack;
printf("Enter student grade : ");
scanf("%c", &jack.grade);
printf("Grade : %c\n", jack.grade);
printf("Enter student score : ");
scanf("%f", &jack.score);
printf("Score : %f\n", jack.score);
}
它給我確切的輸出[正確的輸出]。我知道這不是一個好例子,但有人能解釋我發生了什麼問題嗎?
修改後的代碼:在格式字符串前添加\ n。 [scanf函數( 「\ n%C」,& CH);]
#include <stdio.h>
union Student
{
float score;
char grade;
};
int main(void)
{
union Student jack;
printf("Enter student score : ");
scanf("%f", &jack.score);
printf("Score : %f", jack.score);
jack.score=0;
printf("Enter student grade : ");
scanf("\n%c", &jack.grade);
printf("Grade : %c", jack.grade);
}
你是什麼意思的確切產出?你能解釋一下嗎? – mhshams 2010-08-28 17:14:50
@mohammad shams確切輸出=正確輸出 – Searock 2010-08-28 17:35:55
我的問題有什麼問題?爲什麼我被拒絕了? – Searock 2010-08-28 17:37:46