これが私のプログラム全体です。hw4pr11input.txt という入力ファイルから単語の平均文字数を計算することになっています。私はプログラミングを始めて数週間しか経っていないので、わずかな知識で実装できる簡単な回答をいただければ幸いです。私はまだ配列が何であるかを知りません。私が宿題をしている章は、ファイル io にあります。
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
//function declaration
void average_letters(ifstream& fin);
//Precondition: there is a input file with text ready to be read
//postcondition: Text from the input file is read then the average length of
//words is calculated and output to the screen
//start main program
int main()
{
ifstream fin;
fin.open("hw4pr11input.txt"); //opening input file
if (fin.fail()) //checking for input file opening failure
{
cout << "Input file open fail";
exit(1); //terminating program if check fails
}
cout << "File Open\n";
average_letters(fin); //calling function to remove spaces
system("pause");
return 0;
}
//function definition, uses iostream and fstream
void average_letters(ifstream& fin)
{
char next, last_char = 0;
double letter_count = 0, word_count = 0;
double average = 0;
while(!(fin.eof()))
{
fin.get(next);
if(!(next == ' ' || next == ',' || next == '.' || next == '/'
|| next =='(' || next == ')'))
{
letter_count++;
}
else
{
if((next == ' ' || next == ',' || next == '.' || next == '/'
|| next =='(' || next == ')') && (last_char == ' ' || next == ','
|| next == '.' || next == '/' || next =='(' || next == ')' ))
{
continue;
}
else
{
word_count++;
}
}
last_char = next; //stores previous value of loop for comparison
}
average = letter_count/word_count;
cout << "The average length of the words in the file is:" << " " <<average;
cout << endl;
}
このプログラムは割り当てを達成するために機能すると思いますが、私の主な関心事は、それが文字か記号かをチェックする関数 average_letters の部分にあります。.txt ファイルを見て、このシンボル リストを選択しました。ここでのコピーと貼り付けが難しくなるため、コメントを削除しました。それにより、私のロジックが理解しにくくなっていることをお詫びします。
ご協力いただきありがとうございます。私に気楽に行ってください:)。