Ich habe die Foren seit mehr als einem Monat verfolgt und es hat Antworten auf die meisten meiner Fragen. Aber ich habe mich durch eine Schwierigkeit gekämpft, die ich nicht wirklich die Antwort hier finden konnte (es gibt andere ähnliche Lösungen, aber es hat meine nicht gelöst)C4477 - format string '% s' benötigt typ 'char *', aber variadic argument 1 hat den typ 'int'
Ich habe versucht, meinen riesigen Codeblock zu vereinfachen ein unten,
#define DATA_ROW 1 /*I have one data per line*/
int freqstring;
char objectstring;
char string[10];
FILE * file;
freqstring = 0;
while (fscanf_s(file, "%s", &objectstring, 8) == DATA_ROW)
{
string[freqstring] = objectstring;
freqstring = freqstring + 1;
}
for (freqstring = 0; freqstring < 10; freqstring = freqstring + 1)
{
printf("%s", string[freqstring]);
}
gezeigt gestartet jetzt C-Programmierung für über 2 Monate zu lernen, und dies ist das erste Mal, dass ich Arrays bin. Und ich habe die folgende Fehlermeldung im Ausgabefeld angetroffen
C4477 Warnung: ‚printf‘: Format-String ‚% s‘ erfordert ein Argument vom Typ ‚char *‘, aber variadische Argument 1 hat ‚int Typen '
' "% s", string [freqstring])' - etwas fehlt hier ... – 4386427
Der Fehler ist ziemlich klar: Sie behaupten, dass Sie eine "Zeichenkette" drucken wollen, dh ein Char-Array oder einen Char-Pointer. Der Parameter, den Sie geben, ist ein Zeichen. Kein Array, kein Zeiger. –
Ich habe alle Tippfehler korrigiert. @SamiKuhmonen, aber deklariert es nicht als 'char string [10]' machte es ein Array mit Namenstring, mit der Größe 10? Es tut mir leid, wenn meine Frage für Sie wirklich dumm ist. –