Hallo Comunity,
Ich habe ein Problem mit meinem Code.
Er arbeitet richtig aber es kommt andauernd folgender Fehlerhinweis:
- Argument is incompatible with corresponding format string conversion.
Kann mir jemand sagen, was bei meinem String falsch ist?
--------------
...
float a;
int b, c;
char d[24];
...
sscanf(buffer,"%f%d%d%s", &a, &b, &c, &d);
...
-------------
Die Line aus der ausgelesen wird sieht zum Beispiel so aus:
0.111111 11 8 1111111111111111
Vielen Dank
Johann L. schrieb:> &d --> d
Korrekt, nur verursacht das meines Erachtens nach nicht die Warnung, die
der Themenersteller angibt. Sondern eher ein:
sscanf.c: In function `main':
sscanf.c:12: warning: char format, different type arg (arg 6)
@Jim:
Wie ist denn buffer deklariert?
Mark Brandis schrieb:> Korrekt, nur verursacht das meines Erachtens nach nicht die Warnung, die> der Themenersteller angibt. Sondern eher ein:>> sscanf.c: In function `main':> sscanf.c:12: warning: char format, different type arg (arg 6)
Auch ich bekomme die selbe Compilerwarnung wenn ich den String mittels
&d einzulesen versuche, obwohl es funktioniert.
Möglicherweise hängt es vom Compiler ab welche Warnung ausgegeben wird.
Getestet mit g++ (GCC) 3.3.6
Gruss Martin
mloidl schrieb:> Mark Brandis schrieb:>> Korrekt, nur verursacht das meines Erachtens nach nicht die Warnung, die>> der Themenersteller angibt. Sondern eher ein:>>>> sscanf.c: In function `main':>> sscanf.c:12: warning: char format, different type arg (arg 6)>> Auch ich bekomme die selbe Compilerwarnung wenn ich den String mittels> &d einzulesen versuche, obwohl es funktioniert.>> Möglicherweise hängt es vom Compiler ab welche Warnung ausgegeben wird.
Möglich.
Da d aber ein char Array ist und im Format String ein %s steht, ist 'd'
korrekt (und nicht &d) und passt als solches auch zu %s
UNd das stimmt auch dann, wenn die Compilerhersteller aufgegeben haben
und stillschweigend bei Arrays das & ignorieren, obwohl es eigentlich
nicht richtig ist.
Eine eigene Frage?
Dieser Thread ist über 11 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.