2011-09-20 86 views
0

我得到这样的警告:编译器警告..C语言(类问题..)

499: warning: conversion lacks type at end of format 

行499:

char query [512]; 
    sprintf(query, "SELECT IFNULL(SUM(Netto_Acquisto),0) AS 'Totale acquisti mese' from Acquisti WHERE mid(Data_Acquisto,6,2)='%'",mese); 

梅塞声明为:char mese[3]; Netto_Acquisto是char[9]; - - >在mysql中是十进制(9.2) Data_Acquisto是char[10]; - >在mysql中是日期

对不起打扰你...谢谢很多

回答

4

你似乎没有指定在%参数的实际类型,如果mese其字符串它应该是%s

+0

你是对的....对不起...我确实想念s。现在编译器不再抱怨了,但是在执行过程中我得到了“SEGMENTATION FAULT”。你认为这可能是什么问题? – Vera

+0

确保mese以'\ 0'结尾。 – roni

+0

你能告诉我该怎么办?我应该在sprintf查询的末尾添加\ 0吗?这就是我为什么得到分段错误的原因吗?“谢谢 – Vera

1

在这里你错过了格式说明符,因为你在代码中写下了这样的%。 只要照顾它,你就会得到答案。

0

sprintf(query, "SELECT IFNULL(SUM(%s),0) AS \'Totale acquisti mese\' from Acquisti WHERE mid(%s,6,2)=%s",Netto_Acquisto,mese,Data_Acquisto);你忘了提到转义序列和格式说明符。