'cout' was not declared in this scope [closed]
Asked Answered
I

2

88

I have a C++ program:

test.cpp

#include<iostream>

int main()
{
    char t = 'f';
    char *t1;
    char **t2;
    cout<<t;    //this causes an error, cout was not declared in this scope
    return 0;
}

I get the error:

'cout' was not declared in this scope

Why?

Inshore answered 3/3, 2013 at 12:46 Comment(2)
I'm wondering how many times this got asked here.Taeniafuge
I don't understand why this is closed as "too localized"?Housecarl
C
141

Put the following code before int main():

using namespace std;

And you will be able to use cout.

For example:

#include<iostream>
using namespace std;
int main(){
    char t = 'f';
    char *t1;
    char **t2;
    cout<<t;        
    return 0;
}

Now take a moment and read up on what cout is and what is going on here: http://www.cplusplus.com/reference/iostream/cout/


Further, while its quick to do and it works, this is not exactly a good advice to simply add using namespace std; at the top of your code. For detailed correct approach, please read the answers to this related SO question.

Canna answered 3/3, 2013 at 14:8 Comment(5)
Such bad advice.Rejoinder
I know, I made that answer 2 years ago, but now I know it is good enough for beginner, because it is stupid and hard to explain novice programmer what namespace is.Canna
I disagree. This is particularly bad for beginners because they can't see the implications.Rejoinder
I agree with @Rejoinder here. It is much easier to start with a solid foundation and explain what everything does so that they don't have to relearn the concepts of something that they thought they already have taken care ofDistribute
tl;dr "using std::cout;"Cholula
I
45

Use std::cout, since cout is defined within the std namespace. Alternatively, add a using std::cout; directive.

Inspire answered 3/3, 2013 at 12:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.