- C++ Programming Examples
- C++ Programming Examples
- C++ Hello World
- C++ Get Input
- C++ Print Integer
- C++ Add Two Numbers
- C++ Add Sub Mul Div
- C++ Add Digits
- C++ Find Average Perc
- C++ Find Arithmetic Mean
- C++ Sum of n Natural Numbers
- C++ Sum of n Numbers
- C++ Area Perimeter of Square
- C++ Area Perimeter of Rectangle
- C++ Area Perimeter of Triangle
- C++ Area Circum of Circle
- C++ Find Simple Interest
- C++ Fahrenheit to Celsius
- C++ Celsius to Fahrenheit
- C++ Print Prime Numbers
- C++ Reverse a Number
- C++ Swap Two Numbers
- C++ Print Multiplication Table
- C++ Find Factorial of Number
- C++ Find Factors of Number
- C++ Find HCF & LCM
- C++ Make Calculator
- C++ Count Digits in Number
- C++ Sum of First & Last Digit
- C++ Product of Digits of Number
- C++ Sum of Squares of Digits
- C++ Interchange Digits of Number
- C++ if else Programs
- C++ Check Even or Odd
- C++ Check Prime or Not
- C++ Check Alphabet or Not
- C++ Check Vowel or Not
- C++ Check Leap Year or Not
- Check Reverse equal Original
- C++ Check Perfect Number
- C++ Check Palindrome or Not
- C++ Check Armstrong or Not
- C++ Divisibility Test
- C++ Find Wage of Labor
- C++ Find Discounted Price
- C++ Find Shipping Charge
- C++ Find Telephone Bills
- C++ Calculate Student Grade
- C++ Largest of Two Numbers
- C++ Largest of Three Numbers
- C++ Number Conversion
- C++ Decimal to Binary
- C++ Decimal to Octal
- C++ Decimal to Hexadecimal
- C++ Binary to Decimal
- C++ Binary to Octal
- C++ Binary to Hexadecimal
- C++ Octal to Decimal
- C++ Octal to Binary
- C++ Octal to Hexadecimal
- C++ Hexadecimal to Decimal
- C++ Hexadecimal to Binary
- C++ Hexadecimal to Octal
- C++ Pattern Programs
- C++ Pattern Programs
- C++ Print Diamond Pattern
- C++ Print Floyd's Triangle
- C++ Print Pascal's Triangle
- C++ Array Programs
- C++ 1D Array Program
- C++ Linear Search
- C++ Binary Search
- Find Largest Element in Array
- Find Smallest Element in Array
- Find Second Largest Element
- Find Second Smallest Element
- C++ Sum of All Elements
- C++ Multiply All Elements
- C++ Element on Even Position
- C++ Element on Odd Position
- C++ Print Even Numbers in Array
- C++ Print Odd Numbers in Array
- C++ Count Even/Odd Numbers
- C++ Sum of Even/Odd Numbers
- C++ Count Positive Negative Zero
- C++ Reverse an Array
- C++ Insert Element in Array
- C++ Delete Element from Array
- C++ Merge two Arrays
- C++ Bubble Sort
- C++ Selection Sort
- C++ Insertion Sort
- C++ Common Elements
- C++ 2D Array Programs
- C++ Add Two Matrices
- C++ Subtract Two Matrices
- C++ Transpose Matrix
- C++ Multiply Two Matrices
- C++ 3D Array Programs
- C++ String Programs
- C++ Print String
- C++ Find Length of String
- C++ Compare Two Strings
- C++ Copy String
- C++ Concatenate String
- C++ Reverse a String
- C++ Delete Vowels from String
- C++ Delete Word from String
- C++ Count Character in String
- C++ Count Word in String
- C++ Frequency of Word
- C++ Remove Spaces from String
- C++ Sort a String
- C++ Uppercase to Lowercase
- C++ Lowercase to Uppercase
- C++ Swap Two Strings
- C++ Check Anagram or Not
- C++ Capitalize All Words in String
- C++ Capitalize Specific Character
- C++ Get Numbers from String
- C++ File Programs
- C++ Read a File
- C++ Write Content to File
- C++ Append Data in File
- C++ Read & Display File
- C++ Copy a File
- C++ Merge Two Files
- Count Characters, Words in File
- C++ Capitalize All Words in File
- C++ List Files in Directory
- C++ Delete a File
- C++ Encrypt & Decrypt a File
- C++ Misc Programs
- C++ Print ASCII Value
- C++ Add Binary Numbers
- C++ Generate Random Numbers
- C++ Print Smiling Face
- C++ Days into Years, Months
- Add Two Numbers using Pointer
- C++ Print Fibonacci Series
- Generate Armstrong Numbers
- C++ Find nCr and nPr
- C++ Get IP Address
- C++ Print Date/Time
- C++ Shutdown, Restart Computer
- C++ Programming Tutorial
- C++ Tutorial
- C++ Programming Test
- C++ Programming Test
- Give Online Test
- All Test List
C++ Program to Count Characters, Words, Lines in a File
This article provides some programs in C++ that count and prints total number of characters, words, lines, vowels etc. in a file. The name of file must be entered by user at run-time. This article deals with these programs:
- Count total number of characters in a file
- Count total number of words in a file
- Count total number of lines in a file
- Count total number of blank spaces in a file
- Count total number of vowels and consonants in a file
What to do Before Program ?
Since the program given below operates on a file. Therefore a file must be available/created inside the current directory (the folder where the C++ program's source code is saved). Because I've not created a file, so let me create a file say codescracker.txt. Here is the snapshot of the folder where this file is created and saved right now:
Now put some content inside this file, so that the program given below counts all the things like characters, words, lines, vowels, consonants, blank spaces etc. available in the file. Here is the snapshot of the opened file, codescracker.txt after writing/putting some content:
Now let's move on and create a program in C++ that counts characters, words, and lines etc. from this file using the program.
Count Number of Characters in a File
The question is, write a program in C++ that receives the name of file from user at run-time to count and print the total number of characters available in the file. The answer to this question is the program given below:
#include<iostream> #include<fstream> using namespace std; int main() { char filename[30], ch; int tot=0; ifstream fp; cout<<"Enter the Name of File: "; cin>>filename; fp.open(filename, ifstream::in); if(!fp) { cout<<endl<<"File doesn't exist or Access denied!"; return 0; } while(fp>>noskipws>>ch) tot++; fp.close(); cout<<endl<<"Total Characters = "<<tot; cout<<endl; return 0; }
The snapshot given below shows the initial output produced by above C++ program on counting total characters available in a text file:
Now enter the name of file say codescracker.txt (the file created earlier) and press ENTER
key to count and print
the total number of characters like shown in the snapshot given below:
Note - The noskipws is used in between file pointer fp and the character variable ch while scanning/getting the character, so that to extract and initialize all the things (i.e., whole content of file) including tab spaces, blank spaces, newlines etc.
Count Number of Words in a File
This program count and prints total number of words available in a file entered by user. Most of the code will be same with previous program except the counting part. Let's have a look at the program given below:
#include<iostream> #include<fstream> using namespace std; int main() { char filename[30], ch, str[1000]; int tot=0, i=0, tot_word=0; ifstream fp; cout<<"Enter the Name of File: "; cin>>filename; fp.open(filename, ifstream::in); if(!fp) { cout<<endl<<"File doesn't exist or Access denied!"; return 0; } while(fp>>noskipws>>ch) { str[tot] = ch; tot++; } fp.close(); str[tot]='\0'; while(str[i]!='\0') { if(str[i]=='\n') { if(str[i+1]!='\0' && str[i+1]!=' ') tot_word++; i++; } else if(str[i]!=' ') i++; else { if(str[i+1]!='\0' && str[i+1]!=' ') tot_word++; i++; } } cout<<endl<<"Total Words = "<<tot_word; cout<<endl; return 0; }
Here is its sample run with same user input, that is codescracker.txt as the name of file:
In above program, the statement:
str[tot]='\0';
is used to terminate the initialization of character to string str using a null terminated character ('\0'). And the following block of code:
while(str[i]!='\0') { if(str[i]=='\n') { if(str[i+1]!='\0' && str[i+1]!=' ') tot_word++; i++; } else if(str[i]!=' ') i++; else { if(str[i+1]!='\0' && str[i+1]!=' ') tot_word++; i++; } }
is responsible to count the total number of words available in the string str. This string contains all the content of the file. Therefore, indirectly the code is used to count the total number of words in the file. In this block of code, the code:
while(str[i]!='\0')
states that the loop continues its execution until a null terminated character ('\0') arrives. And the code:
if(str[i+1]!='\0' && str[i+1]!=' ')
states that the condition evaluates to be True only if character at i+1th index is not equal to a null terminated character and also not equal to a blank space.
Count Number of Lines in File
This is I think the simplest one from all the program given here. The only extra thing we've to do in this program is only to compare the character at current index with \n and increment the variable responsible for the counting of newlines or number of lines available in the file like shown in the program given below:
#include<iostream> #include<fstream> using namespace std; int main() { char filename[30], ch, str[1000]; int tot=0, i=0, tot_lines=0; ifstream fp; cout<<"Enter the Name of File: "; cin>>filename; fp.open(filename, ifstream::in); if(!fp) { cout<<endl<<"File doesn't exist or Access denied!"; return 0; } while(fp>>noskipws>>ch) { str[tot] = ch; tot++; } fp.close(); str[tot]='\0'; while(str[i]!='\0') { if(str[i]=='\n') tot_lines++; i++; } tot_lines++; cout<<endl<<"Total Number of Lines = "<<tot_lines; cout<<endl; return 0; }
Here is its sample run with user input codescracker.txt to count and print total number of lines available in this file like shown in the snapshot given below:
Total Number of Blank Spaces in File
This program is as simple as previous program. Here also, we only have to compare with ' ' a blank space with each and every character one by one like shown in the program given here:
#include<iostream> #include<fstream> using namespace std; int main() { char filename[30], ch, str[1000]; int tot=0, i=0, tot_blanks=0; ifstream fp; cout<<"Enter the Name of File: "; cin>>filename; fp.open(filename, ifstream::in); if(!fp) { cout<<endl<<"File doesn't exist or Access denied!"; return 0; } while(fp>>noskipws>>ch) { str[tot] = ch; tot++; } fp.close(); str[tot]='\0'; while(str[i]!='\0') { if(str[i]==' ') tot_blanks++; i++; } cout<<endl<<"Total Number of Blank Spaces = "<<tot_blanks; cout<<endl; return 0; }
Here is the snapshot of the sample run with again same user input as of previous program, that is codescracker.txt:
Count Vowels and Consonants in File
This is the last program of this article that count and prints total number of vowels as well as consonants available in a text file:
#include<iostream> #include<fstream> using namespace std; int main() { char filename[30], ch, str[1000]; int tot=0, i=0, vowels=0, consonants=0, ascii; ifstream fp; cout<<"Enter the Name of File: "; cin>>filename; fp.open(filename, ifstream::in); if(!fp) { cout<<endl<<"File doesn't exist or Access denied!"; return 0; } while(fp>>noskipws>>ch) { str[tot] = ch; tot++; } fp.close(); str[tot]='\0'; while(str[i]!='\0') { if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u') vowels++; else if(str[i]=='A'||str[i]=='E'||str[i]=='I'||str[i]=='O'||str[i]=='U') vowels++; else { ascii = str[i]; if(ascii>=65 && ascii<=90) consonants++; else if(ascii>=97 && ascii<=122) consonants++; } i++; } cout<<endl<<"Total Number of Vowels = "<<vowels; cout<<endl<<"Total Number of Consonants = "<<consonants; cout<<endl; return 0; }
The snapshot given below shows the sample run of above program on counting total number of vowels and consonants in a text file entered by user at run-time:
The above program is created in a way that, first I've checked whether the character is a vowel or not. If not, then using else block, the character gets initialized to a variable of int type, that assigns the ASCII equivalent of the character. And using the ASCII value, I've done the thing.
Note - The ASCII values of A-Z are 65-90 and for a-z are 97-122.
You can also replace the following block of code, from above program:
else { ascii = str[i]; if(ascii>=65 && ascii<=90) consonants++; else if(ascii>=97 && ascii<=122) consonants++; }
with the block of code given below:
else { if(str[i]>='A' && str[i]<='Z') consonants++; else if(str[i]>='a' && str[i]<='z') consonants++; }
The output will be same. I've provided both variety to give you the complete understanding on the topic.
« Previous Program Next Program »