2016-11-18 2 views
0

Ich bin neu in C-Programmierung und Arbeits durch ein Buch funktionieren namens „Sams selbst beibringen C-Programmierung in One Hour A Day“Zu wenig Argumente Anruf

Eines der Trainingsprogramme in Kapitel 2 gibt mir einen Fehler Ich bin zu Anfänger, um es zu verstehen. Eine kleine Hilfe und klare Erklärung ohne pompösen Sarkasmus wäre sehr zu empfehlen! Vielen Dank für Ihre Zeit und Rücksicht.

Exercise Program

+2

'fgets (buffer);' -> 'fgets (buffer, sizeof puffern, stdin);', '% d' ->'% zu' ' – BLUEPIXY

+2

Für zukünftige Fragen kopieren Sie bitte die Code- und Fehlermeldungen als Text (eingerückt durch 4 Spalten, damit es richtig formatiert wird) anstelle eines Screenshots. Screenshots können schwierig zu lesen sein und es ist nicht möglich, den Beispielcode zu kopieren oder einzufügen, wenn jemand den Code lokal ausprobieren möchte. –

+0

Vielen Dank für den Hinweis. Ich werde von nun an diesen Anweisungen folgen. Ich schätze deine Zeit und Rücksicht wirklich. Prost! –

Antwort

0

Der Fehler ist Programm: fgets() erwartet drei Argumente. Du gibst es eins.

So nennen es wie folgt aus:

fgets(buffer, 256, stdin) 

Puffer ist, wo der Eingang zu speichern ist, die Größe des Puffers ist, stdin ist der Strom aus zu lesen.

Auch use %lu anstelle von% d als Formatbezeichner für unsigned lang.

bearbeiten: Use the z modifier als %zu für den Wert von strlen zurückgegeben, die vom Typ ist size_t

+0

Vielen Dank! Ich schätze deine Zeit sehr. Das hat perfekt funktioniert. –

+1

[Wie kann man eine size_t-Variable mit der printf-Familie portabel drucken?] (Http://stackoverflow.com/questions/2524611/how-can-one-print-a-size-t-variable-portable-using-the- -printf-family) – BLUEPIXY

+2

Nein, verwenden Sie '% zu' für den von' strlen' zurückgegebenen Wert, der vom Typ 'size_t' ist. –

Verwandte Themen