2014-02-26 6 views
0

다음 코드는형식 '% s'은 (는) 'char *'유형의 인수를 예상하지만 인수 11은 'int'형식을 나타냅니다. 형식 '% s'은 'char *'유형의 인수를 필요로하지만, 인수 12는 'int'타입을 가지고 있습니다. 변수 유형에 실수가 없습니다.인수 유형 오류

typedef struct{ 

     char country[20]; 
     char town[20]; 
    }location; 
    typedef struct{ 
     int birthday_day; 
     int birthday_month; 
     int birthday_year; 
    } birthday; 
    typedef struct{ 
     char university; 
     char department; 
     int year_of_graduation; 
    }education; 
    typedef struct{ 
     int id; 
     char name[20]; 
     char surname[20]; 
     location place; 
     birthday birth; 
    education school; 
     int quantity_of_friends; 
     int quantity_of_likes; 
     int quantity_of_posts; 
    }user; 

user usser[100]; 
int i; 

for (i=0;i<100;i++){ 
fscanf(input,"%i %s %s %s %s %i %i %i %s %s %i %i %i %i ", &usser[i].id, usser[i].name,usser[i].surname, usser[i].place.country,usser[i].place.town, &usser[i].birth.birthday_day,&usser[i].birth.birthday_month, &usser[i].birth.birthday_year, usser[i].school.university, usser[i].school.department,&usser[i].school.year_of_graduation, &usser[i].quantity_of_friends,&usser[i].quantity_of_likes, &usser[i].quantity_of_posts); 
} 

답변

0

문제는 문자 어레이뿐만 아니라 문자이어야이

typedef struct{ 
    char university; 
    char department; 
    int year_of_graduation; 
}education; 

universitydepartment이다.

교육 구조체에서
0

, universitydepartment 두 단일 문자, 당신은 당신은 단지 문자 변수

char university; 
    char department; 

를 선언

char university[SIZE]; 
    char department[SIZE]; 
1

배열로 정의해야하지만 당신은 그 어떤 원인에서 문자열을 기대 경고.

그래서 바로

char university[100]; 
    char department[100]; 
+0

처럼 될 수 있습니다. 조금도. 어쨌든 나는 uni의 이름이 배열이어야한다는 조건을 놓쳤다. 감사! – user3349993

+0

@ user3349993 좋아, 환영합니다. –