私はC ++を初めて使用し、桁数、文字、スペース記号、およびその他の記号をカウントできるプログラムを作成する必要があります。桁数を数えることから始めることにしました。これまでの私のコードは次のとおりです。
int main() {
int n = 0;
int numb = 0;
ifstream read("Data.txt");
n = symbCounter(n, read);
numb = numbCounter(n, read, numb);
cout << numb; // this is for quick testing
return 0;
}
int symbCounter(int &n, ifstream &read) {
char ch;
while (!read.eof()) {
read.get(ch);
n++;
}
return n;
}
int numbCounter(int &n, ifstream &read, int counter) {
char sk[n];
for (int i = 0; i < n; i++) {
read.get(sk[i]);
if (sk[i] == '1' || sk[i] == '2' || sk[i] == '3' || sk[i] == '4' || sk[i] == '5' || sk[i] == '6' || sk[i] == '7' || sk[i] == '8' || sk[i] == '9' || sk[i] == '0')
counter++;
};
return counter;
}
しかし、コンソールには値 0 が表示されます。何が間違っているのでしょうか? また、数字やスペースを除いて、文字だけを数えるにはどうすればよいですか? 前もって感謝します。