Ich möchte die Datei ohne Leerzeichen, aber den Code, den ich unten versucht habe Ich bin mir nicht sicher, wie lösche ich ein Zeichen, so habe ich versucht, eine Rücktaste (nicht druckbares Zeichen) aber dies scheint nichtSo entfernen Sie Whitespace aus einer Datei in c
#include <stdio.h>
int main()
{
FILE* fp;
fp = fopen("in.txt","r+");
int ch;
while((ch = getc(fp))!=EOF){
if((ch == ' ') || (ch == '\n')){
fputc(8,fp);
}
}
}
Die Datei ist
abcd efgh
gibt es eine Arbeits Art und Weise zu arbeiten, dies zu tun ?, ohne eine neue Datei mit (ie.copy alle außer Leerzeichen)
Wenn Sie ein Backspace-Zeichen ''\ b'' in eine Datei schreiben, wird ein Byte ausgegeben (normalerweise ist der Wert 8 - aber Sie sollten' '\ b'' verwenden) und die Dateiposition wird um eins erhöht wie jedes andere Zeichen ausgibt). Wenn Sie rückwärts gehen wollen, müssen Sie 'fseek()' verwenden. Beachten Sie, dass Sie im Aktualisierungsmodus zwischen jeder Lese- und Schreiboperation sowie zwischen jeder Schreib- und Leseoperation 'fseek()' oder eine andere Positionierungsoperation verwenden müssen. Alles andere ist undefiniertes Verhalten. –