| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:关于文件操作的问题,不懂
取消只看楼主 加入收藏
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
关于文件操作的问题,不懂
程序代码:
#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]
2015-04-30 08:57
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-04-30 08:58
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
收藏
得分:0 
回复 3楼 wp231957
sorry,第一次在这提问,字太小又不适应
2015-04-30 09:13
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
收藏
得分:0 
回复 3楼 wp231957
我想知道for循环里面执行的具体过程,我的理解是,while那个循环是读取一个字符,然后判断,如果符合条件,就要执行fputc那句,直到不满足条件了,再读入字符串,但就算我指定读入150个,最后也才读入100个,不懂
2015-04-30 09:17
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
收藏
得分:0 
回复 6楼 wp231957
对下面的数据只输出大写字母部分,代码里面的while语句很不解,为什么while里面先执行完了,在执行while下一句,下一句不应该是while的执行体吗
2015-04-30 09:32
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
收藏
得分:0 
回复 8楼 wp231957
我知道了,以后吸取教训
2015-04-30 12:14
快速回复:关于文件操作的问题,不懂
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018307 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved