| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:关于文件操作的问题,不懂
只看楼主 加入收藏
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
关于文件操作的问题,不懂
程序代码:
#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
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
你需要做的事情:

1、把文件放出来
2、说出你的想法(或者说你期望的结果是什么)

DO IT YOURSELF !
2015-04-30 09:05
赵裕
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
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
我想说的还是这句话  你那样说  不知道你在说神马

以下是引用wp231957在2015-4-30 09:05:15的发言:

你需要做的事情:

1、把文件放出来
2、说出你的想法(或者说你期望的结果是什么)

DO IT YOURSELF !
2015-04-30 09:21
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
收藏
得分:0 
回复 6楼 wp231957
对下面的数据只输出大写字母部分,代码里面的while语句很不解,为什么while里面先执行完了,在执行while下一句,下一句不应该是while的执行体吗
2015-04-30 09:32
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
1、你的while后面多了一个分号
2、循环体或者选择分支 都要用花括号括起来
3、因为我不知道你想实现神马  所以对于阅读你的代码没啥兴趣

DO IT YOURSELF !
2015-04-30 09:35
赵裕
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-4-1
收藏
得分:0 
回复 8楼 wp231957
我知道了,以后吸取教训
2015-04-30 12:14
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
你要先说你的代码是要完成什么功能啊。就像打报警电话,你不能光说这里着火了,却不告诉接线员是哪里着火了:我这里着火了。在哪里?在我这里,我眼看着着火呢!在哪里?就在这里!

总有那身价贱的人给作业贴回复完整的代码
2015-04-30 12:52
快速回复:关于文件操作的问题,不懂
数据加载中...
 
   



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

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