用C语言删除空行(上一行)。 100

 我来答
xoaxa
2017-04-01 · TA获得超过8607个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3395万
展开全部
#include <stdio.h>
#include <stdlib.h>//for function exit()
#include <string.h>//for functions strcpy() and strlen()

const int MAXSIZE = 200;//行最多字符数

int main() {
char line[MAXSIZE],pline[MAXSIZE];
FILE *inp;//被修改的磁盘文件
FILE *outp;//修改后的磁盘文件
char oldfile[] = "indata.txt";
char newfile[] = "outdata.txt";
if((inp = fopen(oldfile,"rt")) == NULL || (outp = fopen(newfile,"wt")) == NULL) {
printf("打开文件时出错!\n");
exit(1);
}
fscanf(inp,"%s",pline);
while(!feof(inp)) {
fscanf(inp,"%s",line);
if(strlen(line) >= 1) {//本行不是空行
fprintf(outp,"%s%s",pline,line);//上一行和本行被全部写入新文件
}
else {//本行是空行
fprintf(outp,"%s",line);//仅写入本行,上一行被丢弃
}
strcpy(pline,line);// 当前行变成了上一行
}
fclose(inp);
fclose(outp);
return 0;
}
浪子惟安
2017-04-01 · TA获得超过108个赞
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:59.8万
展开全部
没太理解你的问题
如果是字符串那删掉第一个\n就行了
如果是控制台\r可以覆盖本行
如果想实现看上去像删除的效果
可以\r接很多个\t
如果删除多行控制台有清屏操作
但是单独真正删除一行的方法我不清楚,我记得\b是不行的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吴崇子书一关
2017-03-31 · TA获得超过481个赞
知道答主
回答量:510
采纳率:0%
帮助的人:76.1万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2017-03-31 · TA获得超过463个赞
知道小有建树答主
回答量:598
采纳率:65%
帮助的人:275万
展开全部
厉鬼勾魂,无常索命
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式