While loop & switch control blank space counter question

I have searched and tried multiple solutions and still cannot get the correct results. What I am trying to do is read from a file and count the characters INCLUDING the blank spaces. I am able to count every other character except for the blanks spaces and could use some advice. Here is input file data:

There are lots of symbols in this file: ..;;??
.,.,.,?::: .

Here is my code:

#include <iostream>
#include <conio.h>
#include <fstream>


using namespace std;

int main ()
{
ifstream inData;
char symbol;
int periodCt = 0;
int commaCt = 0;
int questionCt = 0;
int colonCt = 0;
int semicolonCt = 0;
int spacesCt = 0;

inData.open("Switch.txt");

inData >> symbol;

while (inData)
{
switch (symbol)
{
case '.' : periodCt++;
break;
case '?' : questionCt++;
break;
case ',' : commaCt++;
break;
case ':' : colonCt++;
break;
case ';' : semicolonCt++;
break;
case ' ' : spacesCt++;
break;

}//end switch
inData >> symbol;
cout << ".:" << periodCt << " ::" << colonCt << " ;:" << semicolonCt
<< " ,:" << commaCt << " ?:" << questionCt << " :" << spacesCt << endl;
}//end while

getch();
return 0;
}


And here is my output:

.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::1 ;:0 ,:0 ?:0 :0
.:1 ::1 ;:0 ,:0 ?:0 :0
.:2 ::1 ;:0 ,:0 ?:0 :0
.:2 ::1 ;:1 ,:0 ?:0 :0
.:2 ::1 ;:2 ,:0 ?:0 :0
.:2 ::1 ;:2 ,:0 ?:1 :0
.:2 ::1 ;:2 ,:0 ?:2 :0
.:3 ::1 ;:2 ,:0 ?:2 :0
.:3 ::1 ;:2 ,:1 ?:2 :0
.:4 ::1 ;:2 ,:1 ?:2 :0
.:4 ::1 ;:2 ,:2 ?:2 :0
.:5 ::1 ;:2 ,:2 ?:2 :0
.:5 ::1 ;:2 ,:3 ?:2 :0
.:5 ::1 ;:2 ,:3 ?:3 :0
.:5 ::2 ;:2 ,:3 ?:3 :0
.:5 ::3 ;:2 ,:3 ?:3 :0
.:5 ::4 ;:2 ,:3 ?:3 :0
.:6 ::4 ;:2 ,:3 ?:3 :0

Thanks in advance for the help. I must use a while statement and switch control for this assignment.

Use symbol=inData.get().
It worked. Thanks. Here is my code for anyone who has a similar problem.

// Type your name here
// Program Counting counts punctuation marks in a file.

#include <iostream>
#include <conio.h>
#include <fstream>


using namespace std;

int main ()
{
ifstream inData;
char symbol;
int periodCt = 0;
int commaCt = 0;
int questionCt = 0;
int colonCt = 0;
int semicolonCt = 0;
int spacesCt = 0;

inData.open("Switch.txt");

inData.get(symbol);

while (inData)
{
switch (symbol)
{
case '.' : periodCt++;
break;
case '?' : questionCt++;
break;
case ',' : commaCt++;
break;
case ':' : colonCt++;
break;
case ';' : semicolonCt++;
break;
case ' ' : spacesCt++;
break;

}//end switch
inData.get(symbol);
cout << ".:" << periodCt << " ::" << colonCt << " ;:" << semicolonCt
<< " ,:" << commaCt << " ?:" << questionCt << " :" << spacesCt << endl;
}//end while

getch();
return 0;
}

And the output:

.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :0
.:0 ::0 ;:0 ,:0 ?:0 :1
.:0 ::0 ;:0 ,:0 ?:0 :1
.:0 ::0 ;:0 ,:0 ?:0 :1
.:0 ::0 ;:0 ,:0 ?:0 :1
.:0 ::0 ;:0 ,:0 ?:0 :2
.:0 ::0 ;:0 ,:0 ?:0 :2
.:0 ::0 ;:0 ,:0 ?:0 :2
.:0 ::0 ;:0 ,:0 ?:0 :2
.:0 ::0 ;:0 ,:0 ?:0 :2
.:0 ::0 ;:0 ,:0 ?:0 :3
.:0 ::0 ;:0 ,:0 ?:0 :3
.:0 ::0 ;:0 ,:0 ?:0 :3
.:0 ::0 ;:0 ,:0 ?:0 :4
.:0 ::0 ;:0 ,:0 ?:0 :4
.:0 ::0 ;:0 ,:0 ?:0 :4
.:0 ::0 ;:0 ,:0 ?:0 :4
.:0 ::0 ;:0 ,:0 ?:0 :4
.:0 ::0 ;:0 ,:0 ?:0 :4
.:0 ::0 ;:0 ,:0 ?:0 :4
.:0 ::0 ;:0 ,:0 ?:0 :4
.:0 ::0 ;:0 ,:0 ?:0 :5
.:0 ::0 ;:0 ,:0 ?:0 :5
.:0 ::0 ;:0 ,:0 ?:0 :5
.:0 ::0 ;:0 ,:0 ?:0 :6
.:0 ::0 ;:0 ,:0 ?:0 :6
.:0 ::0 ;:0 ,:0 ?:0 :6
.:0 ::0 ;:0 ,:0 ?:0 :6
.:0 ::0 ;:0 ,:0 ?:0 :6
.:0 ::0 ;:0 ,:0 ?:0 :7
.:0 ::0 ;:0 ,:0 ?:0 :7
.:0 ::0 ;:0 ,:0 ?:0 :7
.:0 ::0 ;:0 ,:0 ?:0 :7
.:0 ::0 ;:0 ,:0 ?:0 :7
.:0 ::1 ;:0 ,:0 ?:0 :7
.:0 ::1 ;:0 ,:0 ?:0 :8
.:0 ::1 ;:0 ,:0 ?:0 :9
.:1 ::1 ;:0 ,:0 ?:0 :9
.:2 ::1 ;:0 ,:0 ?:0 :9
.:2 ::1 ;:1 ,:0 ?:0 :9
.:2 ::1 ;:2 ,:0 ?:0 :9
.:2 ::1 ;:2 ,:0 ?:1 :9
.:2 ::1 ;:2 ,:0 ?:2 :9
.:2 ::1 ;:2 ,:0 ?:2 :9
.:3 ::1 ;:2 ,:0 ?:2 :9
.:3 ::1 ;:2 ,:1 ?:2 :9
.:4 ::1 ;:2 ,:1 ?:2 :9
.:4 ::1 ;:2 ,:2 ?:2 :9
.:5 ::1 ;:2 ,:2 ?:2 :9
.:5 ::1 ;:2 ,:3 ?:2 :9
.:5 ::1 ;:2 ,:3 ?:3 :9
.:5 ::2 ;:2 ,:3 ?:3 :9
.:5 ::3 ;:2 ,:3 ?:3 :9
.:5 ::4 ;:2 ,:3 ?:3 :9
.:5 ::4 ;:2 ,:3 ?:3 :10
.:5 ::4 ;:2 ,:3 ?:3 :11
.:6 ::4 ;:2 ,:3 ?:3 :11

Last edited on
Topic archived. No new replies allowed.