注册 登录
编程论坛 C++教室

字符串处理,怎么实现遇到'>'就换行读取下一行的固定长字符串

yumiao910 发布于 2013-04-15 22:43, 1891 次点击
新手 刚接触C++  我在编一个关于处理字符串的程序   其中在读取文件换行上遇到问题
我的数据格式是这样的
>Q8INB9;
MNYLPFVLQRRSTVVASAPAPGSASRIPESPTTTGSNIINIIYSQSTHPNSSPTSGSAEK               我想问下怎么在读取文件的时候遇到'>'就换行读取一个固定长的字符串比如长度20个,并输出'>'这一行例如
FSWQQSWPSRTSAAPTHDSGTMSINTTFDLSSPSVTSGHALTEQTQVVKEGWLMKRGEHI               >Q8INB9;
KNWRQRYFVLHSDGRLMGYRSKPADSASTPSDFLLNNFTVRGCQIMTVDRPKPFTFIIRG               MNYLPFVLQRRSTVVASAPA
LQWTTVIERTFAVESELERQQWTEAIRNVSSRLIDVGEVAMTPSEQTDMTDVDMATIAED               >P31749;
ELSEQFSVQGTTCNSSGVKKVTLENFEFLKVLGKGTFGKVILCREKATAKLYAIKILKKE               MSDVAIVKEGWLHKRGEYIK
VIIQKDEVAHTLTESRVLKSTNHPFLISLKYSFQTNDRLCFVMQYVNGGELFWHLSHERI
FTEDRTRFYGAEIISALGYLHSQGIIYRDLKLENLLLDKDGHIKVADFGLCKEDITYGRT               这只是其中的两个数据我一个文件中可能有上百个这样的数据求高手帮忙解决换行读取的问题 剩下的我自己继续研究
TKTFCGTPEYLAPEVLDDNDYGQAVDWWGTGVVMYEMICGRLPFYNRDHDVLFTLILVEE               等写差不多了再让高手们给看看,希望能在大家帮助中快速进步。
VKFPRNITDEAKNLLAGLLAKDPKKRLGGGKDDVKEIQAHPFFASINWTDLVLKKIPPPF
KPQVTSDTDTRYFDKEFTGESVELTPPDPTGPLGSIAEEPLFPQFSYQGDMASTLGTSSH
ISTSTSLASMQ
>P31749;
MSDVAIVKEGWLHKRGEYIKTWRPRYFLLKNDGTFIGYKERPQDVDQREAPLNNFSVAQC
QLMKTERPRPNTFIIRCLQWTTVIERTFHVETPEEREEWTTAIQTVADGLKKQEEEEMDF
RSGSPSDNSGAEEMEVSLAKPKHRVTMNEFEYLKLLGKGTFGKVILVKEKATGRYYAMKI
LKKEVIVAKDEVAHTLTENRVLQNSRHPFLTALKYSFQTHDRLCFVMEYANGGELFFHLS
RERVFSEDRARFYGAEIVSALDYLHSEKNVVYRDLKLENLMLDKDGHIKITDFGLCKEGI
KDGATMKTFCGTPEYLAPEVLEDNDYGRAVDWWGLGVVMYEMMCGRLPFYNQDHEKLFEL
ILMEEIRFPRTLGPEAKSLLSGLLKKDPKQRLGGGSEDAKEIMQHRFFAGIVWQHVYEKK
LSPPFKPQVTSETDTRYFDEEFTAQMITITPPDQDDSMECVDSERRPHFPQFSYSASGTA
3 回复
#2
wushengyao2013-04-20 12:43
char next
char str[999];
char str1[20];
int i;
while(!fin.eof()) (fin是输入流)
{
    fin.get(next);
     if(next=='>')
     {
        fin.getline(str,999,'\n');
          for(i=0;i<20;i++);
          {
            fin.get(a[i]);
            fout<<a[i];
          }   
     }
     else
         fout<<next;
}
以上代码未经调试,仅供参考学习,希望能帮助你、。
#3
yumiao9102013-05-05 15:38
回复 楼主 yumiao910
谢谢您  我这就试下   呵呵  多谢您的帮助
#4
yumiao9102013-05-05 15:48
回复 2楼 wushengyao
谢谢您  呵呵我太笨了 我去研究下
1