2013-06-13 4 views
0

임은 학교에 대한 프로젝트를하고이 나를 괴롭히는 계속 경고입니다. 내 코드가 무슨 문제입니까?너무 많은 인수 [-Wformat-여분 인수]

fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%d\n", Item[i]->ID, Item[i]->Date, Item[i]->Adress, 
             Item[i]->Street number, Item[i]->Postal Code, 
             Item[i]->City, Item[i]->Phone,Item[i]->Name, 
             Item[i]->Price); 

또 다른 경고가 :

경고 : 포맷 '% D는'타입 '내부'의 인수를 기대하지만 인수 10 는 '숯 *'[-Wformat]

입력 갖는다

어떻게 해야할지 모르겠어요

+0

당신은 모든 변수를 가정 한 % s을 (를) 누락은 그들이 무슨 말을합니다. –

+0

고마워요, 경고가 사라졌습니다. 나는이 코드로 서둘러서 하나의 % s를 놓쳤다 고 생각했다. – eduroam

답변

2

귀하의 fprintf 호출이 8 개 형식 지정자를 가지고 있지만이를 채우기 위해 9 개 추가 인수를 전달합니다.

제 8 회 형식 지정이 %d이다; 이것에 대응하는 인수는 Item[i]->Name입니다. 경고는 Item[i]->Name이 문자열이므로 부호있는 정수로 변환 할 수 없어야한다고 (경고해서는 안됩니다). 내가 Item[i]->Price 가정

int을 입력있다; 당신은 (아무 곳이나 %d 전에) 당신의 형식 문자열에 추가 %s을 추가하거나 문자열 인수 중 하나를 제거해야 하나.

+0

미안하지만 나는 초급이다. 이것에서 무엇을 바꿀 지 말해 주시겠습니까? 내가 그것을 추가 할 수있는 몇 가지 다른 기능이 있습니까? – eduroam

+0

업데이트 된 답변보기 이 모든 인수를 표시하려면 지정된 추가 형식을 추가해야합니다. 형식 문자열에서'% d '앞에 임의의'% s \ n'을 추가하십시오. – simonc

+0

도움을 주셔서 감사합니다. 모든 것이 지금 고정되어 있습니다. – eduroam

관련 문제