如何从c中文本文件中删除最后一行?



这里是我的文本文件,其中包含ips:

168.897.61.23
168.32.74.11
127.0.0.1
127.0.0.1

这里是我的坏代码(对不起,我是新手):

#include <stdio.h>
int main(){
FILE *fptr1;
char file1[] ="test.txt";
char curr;
int del, line_number = 0;
filet = fopen(file1,"r+");
curr = getc(filet);
if(curr!=EOF) {line_number =1;}
while(1){
if(del != line_number)
putc(curr, filet);
curr = getc(filet);
if(curr =='n') line_number++;
if(curr == EOF) break;
}
fclose(filet);
}

我想工作代码输出我的文件,像这样:

168.897.61.23
168.32.74.11
127.0.0.1

谢谢。

打开两个不同的文件:一个用于输入,另一个用于输出

FILE *inputfile = fopen("text.txt", "r");
FILE *outputfile = fopen("text-out.txt", "w");
char line1[1000], line2[1000]; // 1000 chars is enough
fgets(line1, sizeof line1, inputfile); // read 1st line and hold on to it
while (fgets(line2, sizeof line2, inputfile)) { // read 2nd (3rd, 4th, ...) line
fprintf(outputfile, "%s", line1); // print 1st (2nd, 3rd, ...) line
strcpy(line1, line2); // copy line
}
// last line disappears
fclose(outputfile);
fclose(inputfile);

如果你愿意,现在可以删除输入文件并重命名输出文件。

remove("text.txt");
rename("text-out.txt", "text.txt");

最新更新