惠景中学校花陈滢:高分求助,C编程。给文件里的每行加号码

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 06:57:47
我刚刚开始学习C编程。买了几本书,因为是自学,没有老师和同学可以问。只好来着里向大家求助了。

如题。
比如我在C:\Documents and Settings\Administrator\My Documents\work.txt
里有个文件叫 work.txt
文件里有XX行字。 我想在每行字的前面加上每行的号码。
好象:
1 HPSRHJOJRH;LJHL;
2 N;SAKEG;OKJB;‘K
3 LKSJHRGILJLKS

高手都来帮帮我。用DEV-C 做出来,用C 做,不要用C++,答案捻出来,谢谢。最好能在提供些这类型的网站连接。做出来的追加100分。
注意: 当中间有一行没有字的时候,号码也要跳过那行。最好在后面都加上解释。
比如:
1 NJZFDMJSK
2 AHSRJTK

3 SARJNYRFSKS

4 snjFYK

#include <stdio.h>
#include <stdlib.h>
/*为了兼容早期的fopen,使fopen不受长文件名字的影响,建议你将work.txt拷贝到指定工作目录*/
#define MAXLENGTH 512
void main()
{
FILE *i,*o;
char buf[MAXLENGTH+1],*temp,ch;
i=fopen("c:\\1.txt","r");
o=fopen("c:\\out.txt","w");
int line=0;
while(1) {
if (NULL==fgets(buf,MAXLENGTH,i)) break;
temp=buf;
while (*temp==' ') temp++; /*去除前面的空格,如果一行全是空格则也认为是空行*/
/*如果你认为空格组成的行也要统计,则去掉上面的一行*/
ch=*temp;
if (ch=='\n') continue; /*如果读入的行是回车则不打印到输出文件*/
if (ch=='\r') continue; /*如果读入的行是换行则不打印到输出文件*/
if (ch=='\0') continue; /*如果读入的行是空字符串则不打印到输出文件*/
fprintf(o,"%d %s",++line,buf);
}
fclose(i);
fclose(o);
}