c语言实现文件内容某行删除

来源:百度知道 编辑:UC知道 时间:2024/05/31 01:55:32
在TXT文件中 存储多行结构数组内容
例如:08 013 张三 23 男 2 WL
(最后一行数据后无换行符)
如何用c语言实现该行的删除(但文件操作)
操作环境:Microsoft Visual Studio 2005 WIN32控制台
回复1楼:直接删除当然快 我的问题是现在要用C语言实现
就当是一道考试题OK?

比较简单的问题,没人写,帮你弄了算了。由于小可机子没有装vc2005,所以程序是在win-tc和Dev-c++下运行通过的。
/* 本题的一个完整的c程序如下,程序在win-tc和Dev-c++下已调试通过。 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 255 /* 设文章不超过255行,可更改 */

int main()
{
int i=0,max;
char s[N][81],*p="A.txt";/*设文件A.txt每行文章不超过80字符,可更改*/
FILE *fp;
if ((fp=fopen("A.txt","r"))==NULL)
{ printf("Open file %s error! Strike any key to exit.",p);
system("pause");
exit(0);
}
while (i<N&&fgets(s[i],81,fp)!=NULL)/*按行读原文章*/
{
p=strchr(s[i],'\n');/*消除每行最后的回车符*/
if(p)
*p='\0';
i++;
}
max=i;/*max为文章实际的最大行数*/
fclose(fp);
fp=fopen("A.txt","w");
for(i=0;i<max-2;i++) /*写入文件并输出到屏幕显示除最后一行后的所有行*/
{ fprintf(fp,"%s\n",s[i]);
printf("%s\n",s[i]);