用C写一段删除多余空行的程序
答案:1 悬赏:20 手机版
解决时间 2021-04-24 04:38
- 提问者网友:贪了杯
- 2021-04-23 04:03
一个文档中,是英文和符号组成的,怎样实现删除文档中的空行,来节省空间
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-04-23 05:06
给你个参考,file输出你自己看着改一下吧#include <stdio.h>
#include <stdlib.h>
#include <string.h>void main()
{
FILE* fp = fopen("test.cpp", "r");
if(NULL == fp)
{
return;
}
fseek(fp, 0L, SEEK_SET);
char char_line[1024] = {0}; int totoalline = 0;
printf("\n");
while(1)
{
fgets(char_line, 1024, fp);
int size = strlen(char_line);
if(0 >= size)
{
break;
}
printf("%s", char_line);
memset(char_line, 0, 1024);
totoalline++;
}
printf("\n", totoalline); fseek(fp, 0L, SEEK_SET);
totoalline = 0;
FILE* fp_to = fopen("result.cpp", "w");
printf("\n\n\n");
while(1)
{
fgets(char_line, 1024, fp);
int size = strlen(char_line);
if(0 >= size)
{
break;
}
int i;
for(i=0; i<size-1; i++)
{
if('/' == char_line[i] && '/' == char_line[i+1])
{
break;
}
}
if(0 != i)
{
bool flag_tab = 0;
for(int j=0; j<i; j++)
{
if('\t' != char_line[j] && ' ' != char_line[j])
{
flag_tab = true;
break;
}
}
if(flag_tab)
{
char* ret = (char*)malloc(sizeof(char)*(i+1));
ret[i] = 0;
memcpy(ret, char_line, i);
printf("%s\n", ret);
//写入到新文件
fwrite(ret, sizeof(char), i, fp_to);
fwrite("\r\n", sizeof(char), 2, fp_to);
free(ret);
totoalline++;
}
}
memset(char_line, 0, 1024);
}
printf("\n", totoalline);
printf("详情查看resutl.cpp\n");
fclose(fp);
fclose(fp_to);
}
#include <stdlib.h>
#include <string.h>void main()
{
FILE* fp = fopen("test.cpp", "r");
if(NULL == fp)
{
return;
}
fseek(fp, 0L, SEEK_SET);
char char_line[1024] = {0}; int totoalline = 0;
printf("\n");
while(1)
{
fgets(char_line, 1024, fp);
int size = strlen(char_line);
if(0 >= size)
{
break;
}
printf("%s", char_line);
memset(char_line, 0, 1024);
totoalline++;
}
printf("\n", totoalline); fseek(fp, 0L, SEEK_SET);
totoalline = 0;
FILE* fp_to = fopen("result.cpp", "w");
printf("\n\n\n");
while(1)
{
fgets(char_line, 1024, fp);
int size = strlen(char_line);
if(0 >= size)
{
break;
}
int i;
for(i=0; i<size-1; i++)
{
if('/' == char_line[i] && '/' == char_line[i+1])
{
break;
}
}
if(0 != i)
{
bool flag_tab = 0;
for(int j=0; j<i; j++)
{
if('\t' != char_line[j] && ' ' != char_line[j])
{
flag_tab = true;
break;
}
}
if(flag_tab)
{
char* ret = (char*)malloc(sizeof(char)*(i+1));
ret[i] = 0;
memcpy(ret, char_line, i);
printf("%s\n", ret);
//写入到新文件
fwrite(ret, sizeof(char), i, fp_to);
fwrite("\r\n", sizeof(char), 2, fp_to);
free(ret);
totoalline++;
}
}
memset(char_line, 0, 1024);
}
printf("\n", totoalline);
printf("详情查看resutl.cpp\n");
fclose(fp);
fclose(fp_to);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯