c语言 如何从文件中读取一行,处理过后存到另一个文件,再读下一行,在处理,再存

例如asdg fgh jkk
zxc vbn mjk
qw rty uio
..................
在文本中读取一行,把第一个空格前的字符保存到另一个文件,再读第二行,再处理,在保存.....用循环的方式

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
FILE *fin,*fout;
char str1[81],str2[81]; //假定每行不超过80个字符
char *infile = "in.txt";
char *outfile = "out.txt";
fin = fopen(infile,"r"); // 读格式打开,默认为文本类型
fout = fopen(outfile,"w"); // 写格式打开,默认为文本类型
if((fin == NULL) || (fout == NULL)) {
printf("打开文件失败!\n");
exit(1);
}
while(fscanf(fin,"%s",str1) == 1) {
// 在这儿处理串str1......
strcpy(str2,str1);
fprintf(fout,"%s",str2); // 写入文件
}
fclose(fin);
fclose(fout);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-24
这是一个文件拷贝程序,是按行拷贝的,每行都会被存到buf字符数组里,你要做什么操作,在while循环里做就行了。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
FILE * fp;
FILE * fd;
char buf[1024*1024];
printf("1\n");
fp=fopen("a.out","rb");
if(fp==NULL)
{
perror("open file");
exit(0);
}
fd=fopen("data/a.out","wb");
if(fd==NULL)
{
perror("open file");
exit(0);
}
while(fgets(buf,sizeof(buf),fp)!=NULL)
{

fputs(buf,fd);
}
fclose(fd);
fclose(fp);
return 0;
}
第2个回答  2012-04-24
要读取的文件是txt还是别的什么?txt应该可以用readline来读。别的文件不一定有行的概念。可以readfile,然后,弄个指针,想怎么处理就怎么处理了。追问

是txt,从来没用过readline函数,不知道怎么用

相似回答