- 论坛徽章:
- 0
|
10可用积分
写这个程序的本来目的就是我有一个文件,很多行代码
但是从一个书里copy过来的,里面的代码都是这样的
1 #include<>
2 ...
3 ...
等,意思是每行都有行号和一个空格
我想把他删除掉,懒的手动删,就花几分钟写了几行代码,开始以为很简单
但最后发现个小问题
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAXLINE 1024
int main()
{
int i;
char s[MAXLINE];
char *p = s;
FILE *fp, *fp1;
fp = fopen("a.c", "r+" );
fp1 = fopen("a.c", "r+" );
while((p = fgets(s, MAXLINE, fp)) != NULL){
i = 0;
while((isdigit(p) || isspace(p)) && i<3){
strcpy(p + i, p + i +1);
}
fputs(p, fp1);
}
return 0;
}
假设有我一个a.c的文件
里面的你内容是这样的:
1 ab
2 cd
3 ef
4 gh
5 ij
6 kl
7 mn
8 pq
9 rs
10 tu
11 vw
12 xy
13 za
14 bc
15 de
16 fg
运行程序后就是这样的,怎么回事儿捏???
ab
cd
ef
gh
ij
kl
mn
pq
rs
tu
vw
xy
za
bc
de
fg
tu
11 vw
12 xy
13 za
14 bc
15 de
16 fg
想不清楚!貌似原文件的行数越多,最后尾随的那部分越多! |
|