ich versuche, den Inhalt einer Datei auf einem Puffer setvbuf()
Funktion in C unter Verwendung zu speichern, ist dies der Code, dies zu tun:Warum fügt die Funktion setvbuf() dem Puffer in C Wachstum hinzu?
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp=fopen("test.txt","r+");
char buff[BUFSIZ];
char buff2[BUFSIZ];
setvbuf(fp,buff2,_IOFBF,BUFSIZ);
fgets(buff,BUFSIZ,fp);
printf("%s\n",buff2);
system("PAUSE");
return 0;
}
und dies ist der Inhalt der Datei
line 1
line 2
line 3
aber wenn ich den Code ausführen, zeigt die Konsole:
line 1
line 2
line 3 3
wo kommt es von der zusätzlichen char am Ende der Ausgabe ?.
Jeder Vorschlag, der 'setvbuf' ersetzt ?. – Mehdi
Was versuchst du zu tun? Es gibt * absichtlich * keine Möglichkeit, den Inhalt des stdio-Puffers zu betrachten; Dies ist Teil der Abstraktion/Kapselung, die verschiedene Implementierungsoptionen ermöglicht. –