Ich arbeitete mit grundlegenden fputc Anwendung in C. Ich schreibe/anhängende "." in der Dateinummer mit für Schleife. Aber die Datei zeigt Müllbriefe anstelle von "." .Warum "fputc" hier nicht funktioniert? Es wirft Müllbriefe
#include <stdio.h>
int main()
{
int i = 0 ;
FILE *txtfile ;
txtfile = fopen ("fullstop.txt" , "a") ;
for (; i < 100 ; i++)
{
fputc ( "." , txtfile) ;
}
fclose (txtfile) ;
return 0 ;
}
Ich sehe keine syntaktischen Fehler im Code, aber vielleicht liege ich falsch. GCC zeigt folgende Warnungen und Fehler beim Kompilieren.Dies kann helfen.
warning: passing argument 1 of ‘fputc’ makes integer from pointer without a cast [-Wint-conversion]
fputc ( ".", txtfile) ;
^
/usr/include/stdio.h:573:12: note: expected ‘int’ but argument is of type ‘char *’
extern int fputc (int __c, FILE *__stream);
Es funktioniert, wenn ich stattdessen mit fprintf ersetzen.
fprintf(txtfile,".");
Ich versuchte Fflush auch, aber es hat auch nicht geklappt.
Also, meine Frage ist, warum fputc nicht funktioniert?
'man fputc' ... benutz' 'fputs'' anstatt oder gib ihm das richtige Argument: es braucht den ASCII-Code für das Zeichen versuche mit' 46' anstelle von '". "' – mguijarr
@mguijarr Hell-Nr. Es gibt absolut keine Entschuldigung dafür, '46' zu tippen, wenn Sie' '.'' meinen, zumindest nicht in irgendeinem Code, der entfernt lesbar ist. – hvd
Sie übergeben eine Zeichenfolge, für die ein Zeichen erforderlich ist. Verwenden Sie einfache Anführungszeichen. –