seqin.cpp
来自「利用动态规划算法进行核酸序列的两两比对的源代码。」· C++ 代码 · 共 87 行
CPP
87 行
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include "seqin.h"
int seqgroup::input()
{
std::ifstream filein("seq",std::ios::in);
char inputbuf[200];
singleseq tmpseq;
long endofline=0;
bool start=true;
int zda=0;
int count=0;
if(filein.fail())
exit(-1);
while(!filein.eof())
{
filein.clear();
filein.getline(inputbuf,80);
if(inputbuf[0]==' '||inputbuf[0]==0)
{
continue;
}
if(inputbuf[0]=='>')
{
if(start==false)
{
tmpseq.sseq[endofline]='\0';
endofline++;
tmpseq.length=endofline;
seqgrp.push_back(tmpseq);
count++;
endofline=0;
}
// tmpseq.init();
start=false;
continue;
for(int i=0;i<80;i++)
{
if(inputbuf[i]!='\0')
{
tmpseq.info[i]=inputbuf[i];
}
}
tmpseq.info[i]='\0';
}
int i=0;
while(inputbuf[i]!='\0'&&(inputbuf[i]=='A'||inputbuf[i]=='G'||inputbuf[i]=='T'||inputbuf[i]=='C'||inputbuf[i]=='a'||inputbuf[i]=='g'||inputbuf[i]=='t'||inputbuf[i]=='c'||inputbuf[i]=='U'||inputbuf[i]=='u'))
{
if(inputbuf[i]!=' ')
{
switch(inputbuf[i])
{
case 'A': tmpseq.sseq[endofline]='0';i++;endofline++;break;
case 'a': tmpseq.sseq[endofline]='0';i++;endofline++;break;
case 'C': tmpseq.sseq[endofline]='1';i++;endofline++;break;
case 'c': tmpseq.sseq[endofline]='1';i++;endofline++;break;
case 'U': tmpseq.sseq[endofline]='1';i++;endofline++;break;
case 'u': tmpseq.sseq[endofline]='1';i++;endofline++;break;
case 'G': tmpseq.sseq[endofline]='2';i++;endofline++;break;
case 'g': tmpseq.sseq[endofline]='2';i++;endofline++;break;
case 'T': tmpseq.sseq[endofline]='3';i++;endofline++;break;
case 't': tmpseq.sseq[endofline]='3';i++;endofline++;break;
}
}
else
{
std::cout<<tmpseq.info<<" "<<i<<std::endl;
}
}
}
return count;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?