here's my code, don't see why it doesn't print out

#include <iostream>

using namespace std;

int main()
{
    cout<<"enter a passage into input to find out how difficult it is to read\n";
    string passage;
    cin>>passage;
    char letter;
    int space=0;
    while(letter!='\n')
    {
        if(isspace(cin.peek())&&letter=='\n')
        {
            cout<<"from space";
            space=space++;
        }
    }
    cout<< space;
    return 0;
}

so it prints out but is an infinite loop, need to check if they do enter '\n' character how to do that?

#include <iostream>

using namespace std;

int main()
{
    cout<<"enter a passage into input to find out how difficult it is to read\n";
    string passage;
    cin>>passage;
    char letter;
    int space=0;
    while(letter!='\n')
    {
        cin.get(letter);
        while(letter=" ");
        //while(isspace(cin.peek())&&letter=='\n')
        {
            cin.get(letter);
            cout<<"the letter is"<<letter;
            space++;
        }
    }
    cout<< space;
    return 0;
}
Comments
It's no an answer Sky, this is the OP
Bad Answer![color="red"]while(letter=" ");[/color] Firsltyyou are assigning a value to letter instead of comparing"==" and then another error is that you are comparing a char with a const char*
#include<iostream.h>
#include<conio.h>
#include<stdio.h>

void main()
{
clrscr();
char st[25];
cout<<"Enter String:- ";
gets(st);

int n; 
n = strlen(st);
int i;
int count=0;
for(i=0;i<=n;i++)
{
         while(str[i] == NULL)
         {
                   count=count+1;
          }
}

cout<<endl<<"Space:-"<<count;

getch();
}

Edited 6 Years Ago by Nick Evan: n/a

Comments
...and no code-tags again
Abbominative code.

basically i am trying to create a readibility index so i need the number of vowels, words and sentences. I am stuck on how to approach this.

cin>>passage;

cin would stop reading as soon as it encounters a space !
Use getline instead:

getline (cin  ,  passage)

while(letter!='\n')
    {
        cin.get(letter);
        while(letter=" ");  //<<extra character makes it redundant;) 
        //while(isspace(cin.peek())&&letter=='\n')
        {
            cin.get(letter);
            cout<<"the letter is"<<letter;
            space++;
        }
    }

Instead ,

for (int  i = 0 ; i < passage.length() ;i++)
    if (isspace(passage[i]) )
         space++;

Edited 3 Years Ago by Reverend Jim: Fixed formatting

gives me weird error of includes atleast one deprecated or antiquated header.
And it doesn't seem to capture # of spaces.

#include<iostream.h>

using namespace std;
int main()
{
string passage;
int space;
cout<<"enter the passage to find out readability index";
cin>>passage;
getline(cin,passage);
    for (int  i = 0; i < passage.length(); i++)
    {
        if (isspace(passage[i]) )
        {
            space++;
        }
        cout<<"the number of spaces is"<<space;
    }
}

Change <iostream.h> to <iostream>, that's the standard C++ way.

Also delete the line cin >>passage . You're already taking in input with getline(), so no need to do it twice.

And also change int space; to int space = 0; . How can your program ++ if it doesn't know the variable's initial value?

Also put this line: cout<<"the number of spaces is"<<space; outside your for loop. You only want to display this messsage once right?

[edit]

Also ( :) ) , you might want to put a cin.get() at the end of your loop (right after you output your message. This keeps the console open for you to read what the output of your program is. If you don't put it there, your console window will disappear to fast.
You could also run it from a console window you've already opened, but my guess is that you do not yet know how this works.

now it says comparison between unsigned and signed integer expressions
so do i say one is unsigned type?

I've editted my previous post, you might want to read it.

>> now it says comparison between unsigned and signed integer

It's right. This line : for (int i = 0; i < passage.length(); i++) compares an unsigned integer (returned by the function length(), with an signed integer (your int i)
To solve this warning, just change it to: for (unsigned int i = 0; i < passage.length(); i++)

no no..
loop is not going infinite, loop is running equal to the numbers of character in a string which you have entered..
i have stored that character in integer variable " n " using " strlen(input string) " function.
and in case of "/n" i think it may not be consider as a member of string..

no no..
loop is not going infinite, loop is running equal to the numbers of character in a string which you have entered..
i have stored that character in integer variable " n " using " strlen(input string) " function.
and in case of "/n" i think it may not be consider as a member of string..

What the hell are you talking about?
Anyway: The problem was already solved, you should read all the replies before you make a reply yourself.

Mr xyz...
for your kind information..
i was solving his confutation and i think he may got it...
its non of your business..
and also mind your language, dont proud or shout to be "nearly a posting maven".
In past when u newly joined "daniweb" as i have joined yet, your situation might was like mine..
okay..

so it prints out but is an infinite loop, need to check if they do enter '\n' character how to do that?

no no..
loop is not going infinite, loop is running equal to the numbers of character in a string which you have entered..
i have stored that character in integer variable " n " using " strlen(input string) " function.
and in case of "/n" i think it may not be consider as a member of string..

Mr xyz...
for your kind information..
i was solving his confutation and i think he may got it...
its non of your business..

It's niek_e not xyz. Why is this non of my business? I helped the OP to solve the problem?

Mr xyz...
and also mind your language, dont proud or shout to be "nearly a posting maven".

"nearly a posting maven" is just a title I got for posting more then 2000 (?) posts. Just as your title is "newbie poster" because you haven't posted very much yet. Can't do anything about it, not my choice.

In past when u newly joined "daniweb" as i have joined yet, your situation might was like mine..
okay..

No, my situation wasn't like yours at all. I read the rules for example, which clearly state:
- don't give away homework
- use code-tags
- use proper language/grammar
- don't bump:

s

^ What?

Why did you repost your original post? It still doesn't make much sense, even if you post it twice.
- What strlen() are you talking about?
- "/n" is not the same as '\n'
- a character is not a member of a string

Comments
Well stated.
This question has already been answered. Start a new discussion instead.