#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char ch;
int words = 0, characters=0 , lines=0;
ifstream file("myfile.txt");
file.seekg(0,ios::end); // points to the end of file
int length = file.tellg(); // returns the end of file's index , if its 0 then the file is empty
if(!file) // checks the existence of file
{
cout<< "file was not found ";
}
if (length == 0)
{
cout << "file is empty
";
cout << "words = " <<words <<endl
<< "line = " <<lines <<endl
<< "characters = " << characters <<endl;
}
else
file.seekg(0,ios::beg); // pointer set to beginning as it was pointing to the end
{
while (file)
{
file.get(ch);
if (ch == ' ')
{
words ++;
}
if (ch == '
')
{
lines ++;
}
characters ++;
}
cout<< "words = " <<words+1 <<endl // they are incremented to one because they were initialized to 0
<< "line = " <<lines+1 <<endl
<< "characters = " << characters+1 <<endl;
return 0;
/*
there might be a question that , what if there was no words or letters or line,
the program will always give 1
the answer is a no character case occurs if the file is empty
since the program already checks for that case, its ggs
*/
}
}