关于文件操作的问题,不懂
程序代码:
#include<stdio.h> #include<stdlib.h> void PreTreat();//预处理 处理奇偶行 合并两个文件 结果放在PreIndex文件里面 void Index(int);//真正开始制作索引 int main(){ PreTreat(); int k; printf("请输入k-mer的k\n"); scanf("%d",&k); //Index(k); return 0; } void PreTreat() { int i; char ch; FILE *fIndex,*fSource1,*fSource2; fIndex = fopen("I:\\PreIndex.fa","w"); if((fSource1 = fopen("I:\\c实验\\faa.fa","r"))==NULL){//文件1 printf("Can't open the solexa_100_170_1.fa!\n"); getchar(); exit(-1); } char str[150]; for(i=0;i<3;i++){//处理文件1 的 500000条 while((ch=fgetc(fSource1))&&(ch<'A'||ch>'T')); fgets(str,150,fSource1); printf("%s", str); fputs(str,fIndex); } fclose(fSource1); fclose(fIndex); }
我不明白,按照执行的结果分析,好像是在while里一直执行到不满足后一个条件,即字符不是ATCG然后才开始执行下面的输出,while可以这样用吗???
还有,为什么我读入的不管多少,最后都只会读入100个?????
求指点[local]1[/local]