我正在用 C++ 编写一个程序来计算文本文档中的字母数。我需要知道我做错了什么,我得到了疯狂的结果数字。上次我得到了一些很好的帮助,我把我的“频率[?]”放在了计数之后。计数本身有问题,但是什么?
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int ALPHA_SIZE = 26;
void open_file ( ifstream & );
void process ( ifstream &, int [], string lineBuffer);
void draw ( int [] );
void printchar ( int[] );
string lineBuffer;
int main()
{
string lineBuffer;
ifstream infile;
open_file ( infile );
int frequency [ALPHA_SIZE];
process ( infile, frequency, lineBuffer);
draw ( frequency );
system("Pause");
return 0;
}
void open_file ( ifstream & inf )
{
char infilename[50]; //actual file name
cout << "File name for input? ";
cin >> infilename;
inf.open(infilename);
}
void process (ifstream &infile, int frequency[], string lineBuffer)
{
int A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z;
A = 0;
B = 0;
C = 0;
D = 0;
E = 0;
F = 0;
G = 0;
H = 0;
I = 0;
J = 0;
K = 0;
L = 0;
M = 0;
N = 0;
O = 0;
P = 0;
Q = 0;
R = 0;
S = 0;
T = 0;
U = 0;
V = 0;
W = 0;
X = 0;
Y = 0;
Z = 0;
if (infile.is_open())
{
while(getline(infile, lineBuffer))
{
if ( 'a' || 'A')
{ A++;
}
if ( 'b' || 'B')
{ B++;
}
if ( 'c' || 'C')
{ C++;
}
if ( 'd' || 'D')
{ D++;
}
if ( 'e' || 'E')
{ B++;
}
if ( 'f' || 'F')
{ F++;
}
if ( 'g' || 'G')
{ G++;
}
if ( 'h' || 'H')
{ H++;
}
if ( 'i' || 'I')
{ I++;
}
if ( 'j' || 'J')
{ J++;
}
if ( 'k' || 'K')
{ K++;
}
if ( 'l' || 'L')
{ L++;
}
if ( 'm' || 'M')
{ M++;
}
if ( 'n' || 'N')
{ N++;
}
if ( 'o' || 'O')
{ O++;
}
if ( 'p' || 'P')
{ P++;
}
if ( 'q' || 'Q')
{ Q++;
}
if ( 'r' || 'R')
{ R++;
}
if ( 's' || 'S')
{ S++;
}
if ( 't' || 'T')
{ T++;
}
if ( 'u' || 'U')
{ U++;
}
if ( 'v' || 'V')
{ V++;
}
if ( 'w' || 'W')
{ W++;
}
if ( 'x' || 'X')
{ X++;
}
if ( 'y' || 'Y')
{ Y++;
}
if ( 'z' || 'Z')
{ Z++;
}
}
infile.close();
frequency [0] = A;
frequency [1] = B;
frequency [2] = C;
frequency [3] = D;
frequency [4] = E;
frequency [5] = F;
frequency [6] = G;
frequency [7] = H;
frequency [8] = I;
frequency [9] = J;
frequency [10] = K;
frequency [11] = L;
frequency [12] = M;
frequency [13] = N;
frequency [14] = O;
frequency [15] = P;
frequency [16] = Q;
frequency [17] = R;
frequency [18] = S;
frequency [19] = T;
frequency [20] = U;
frequency [21] = V;
frequency [22] = W;
frequency [23] = X;
frequency [24] = Y;
frequency [25] = Z;
}
}
void draw(int frequency[])
{
cout << "A:" << frequency[0] << endl;
cout << "B:" << frequency[1] << endl;
cout << "C:" << frequency[2] << endl;
cout << "D:" << frequency[3]<< endl;
cout << "E:" << frequency[4] << endl;
cout << "F:" << frequency[5] << endl;
cout << "G:" << frequency[6] << endl;
cout << "H:" << frequency[7] << endl;
cout << "I:" << frequency[8] << endl;
cout << "J:" << frequency[9] << endl;
cout << "K:" << frequency[10] << endl;
cout << "L:" << frequency[11] << endl;
cout << "M:" << frequency[12] << endl;
cout << "N:" << frequency[13] << endl;
cout << "O:" << frequency[14] << endl;
cout << "P:" << frequency[15] << endl;
cout << "Q:" << frequency[16] << endl;
cout << "R:" << frequency[17] << endl;
cout << "S:" << frequency[18] << endl;
cout << "T:" << frequency[19] << endl;
cout << "U:" << frequency[20] << endl;
cout << "V:" << frequency[21] << endl;
cout << "W:" << frequency[22] << endl;
cout << "X:" << frequency[23] << endl;
cout << "Y:" << frequency[24] << endl;
cout << "Z:" << frequency[25] << endl;
}