我正在修改我的基本C爲即將到來的測驗做準備,當時我正在編寫一個函數來簡單地接受一個字符輸入並將其存儲到結構中並再次打印出來。編譯沒有任何問題,但我不斷收到合理的問題。我該如何解決?printf和scanf的邏輯問題
#include <stdio.h>
struct player
{
char letter;
int age;
double avg;
};
int main()
{
struct player P1;
char name;
int age;
double avg;
printf("Enter age: ");
scanf("%d", &age);
printf("Enter avg: ");
scanf("%lf", &avg);
printf("Enter name: ");
scanf("%s", &name);
P1.letter= name;
P1.avg = avg;
P1.age = age;
printf("\n Age is: %d \n", P1.age);
printf("Avg is: %lf", P1.avg);
printf(" \n Name is: %c \n", P1.letter);
return 0;
}
如果我把「1」,INT,輸出將是「年齡是:0'
'的scanf( 「%S」,&name);'=>'的scanf( 「%C」,&name);'' – Stargateur
scanf的(」 %s「,&name);' - 您應該[閱讀'%s'格式說明符的要求。](http://en.cppreference.com/w/c/io/fscanf)。您沒有提供適當的金額用於讀取名稱字符串的空間 – WhozCraig
良好的舊緩衝區溢出永遠不會寫入長度未知的C字符串從不 –