我正在用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;
}
數組和循環將使您無法進行所有輸入。 –
'a'|| 'A' - >真,'b'|| 'B' - > true ...這將是分隔 – sehe
這是什麼問題?哪裏?告訴我們你「遇到了另一個錯誤」並不是一個問題。 – jalf