Sinner
Sinner

Reputation: 85

Cout of a string is giving an error and a hard time some insight help pls?

I cant find the error in this piece of code could anyone please insight me? I ran the debugging but the errors are un-understandable..

#include "stdafx.h"
#include <iostream>

using namespace std;

int main() 
{ 
  string name; 
  cout << "Input your name please?" << endl; 
  cin >> name; 

  if
      {
          (name == "Bart Simpson")  
    cout << "You have been very naughty" << endl; 
  }
return 0;
}

Upvotes: 0

Views: 626

Answers (3)

K-ballo
K-ballo

Reputation: 81349

I assume the bracket in the wrong place is just a problem when pasting the code

if(name == "Bart Simpson")

name will never equal "Bart Simpson", since extracting a string stops when it encounters whitespace; so it would only be "Bart". Perhaps you want to use getline() instead?

Upvotes: 3

ildjarn
ildjarn

Reputation: 62975

Problems:

  1. You have some missing #includes, which probably caused your initial compiler errors.
  2. You have a simple syntax error with your if statement.
  3. Using the stream extraction operator will never yield a string with whitespace inside of it.

The following should work as you expect:

#include "stdafx.h"
#include <iostream>
#include <ostream>
#include <string>

using namespace std;

int main()
{
    cout << "Input your name please?" << endl;

    string name;
    getline(cin, name);
    if (name == "Bart Simpson")
    {
        cout << "You have been very naughty" << endl;
    }

    return 0;
}

(You need to include string for std::string and std::getline, and ostream for std::endl.)

Upvotes: 3

jrok
jrok

Reputation: 55395

Should be

if (name == "Bart Simpson")
{
    cout << "You have been very naughty" << endl;
}

And you need to include <string>

Upvotes: 1

Related Questions