引用第2楼tuotuo25于2008-01-01 19:53发表的 :只可惜我不是高人 我楼下的帮你解决
引用第3楼光子vs电子于2008-01-01 19:54发表的 :还是谢谢帮顶嘛
引用第4楼sitademail于2008-01-01 19:59发表的 :不会cpp,cpp里面取地址符号和变量类型可以连起写吗?char&
引用第6楼光子vs电子于2008-01-01 20:03发表的 :人呢
引用第7楼sitademail于2008-01-01 20:06发表的 :这个提示该看得懂了吧,我用vs测试的 [attachment=1400880]
#include <iostream>#include <fstream>#include <cctype>using namespace std;void initialize(int& lc,int *list);void copyText(ifstream & intext,ofstream &outtext,char& ch,int *list);void characterCount(char ch,int *list);void writeTotal(ofstream& outtext,int lc,int *list);int list[26];int main(){ //Step 1;Declare variables int lineCount; int letterCount[26]; char ch; ifstream infile; ofstream outfile; infile.open("e:a.txt"); if(!infile) { cout<<"Cannot open input file."<<endl; return 1; } outfile.open("e:b.txt"); initialize(lineCount,letterCount); infile.get(ch); while(infile) { copyText(infile,outfile,ch,letterCount); lineCount++; infile.get(ch); } writeTotal(outfile,lineCount,letterCount); infile.close(); outfile.close(); return 0;}void initialize(int& lc,int *list){ int j; lc=0; for(j=0;j<26;j++) list[j]=0;}void copyText(ifstream& intext,ofstream& outtext,char& ch,int *list){ while(ch!='\n') //Process the entire line { outtext<<ch;//Output the character characterCount(ch,list); intext.get(ch);//Read the next character }outtext<<ch;//Output the newline character}void characterCount(char ch,int *list){ int index=0; ch=toupper(ch); index=static_cast<int>(ch-65);//Step b if(0<=index&&index>=26)//Step c list[index]++;}void writeTotal(ofstream& outtext,int lc,int *list){ int index; outtext<<endl<<endl; outtext<<"The number of lines="<<lc<<endl; for(index=0;index<26;index++) outtext<<static_cast<char>(index+65)<<"count=" <<list[index]<<endl;}