Gigabillion
Gigabillion

Reputation: 63

Error: C++ requires a type specifier for all declarations

I'm new to C++ and I've been reading this book. I read a few chapters and I thought of my own idea. I tried compiling the code below and I got the following error:

||=== Build: Debug in Password (compiler: GNU GCC Compiler) ===| /Users/Administrator/Desktop/AppCreations/C++/Password/Password/main.cpp|5|error: C++ requires a type specifier for all declarations| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 2 second(s)) ===|.

I don't understand what is wrong about the code, might anyone explain what's wrong and how to fix it? I read the other posts but I was unable to understand it.

Thanks.

#include <iostream>

using namespace std;

main()
{
    string password;
    cin >> password;
    if (password == "Lieutenant") {
        cout << "Correct!" << endl;
    } else {
        cout << "Wrong!" << endl;
    }

}

Upvotes: 6

Views: 64837

Answers (3)

Ankit Mishra
Ankit Mishra

Reputation: 590

One Extra Point:

You can also get exact same error if you try to assign variable in class. Because in C++ you can initialize variables in class but can't assign later after variable declaration but if you try to assign in a function which is defined in the class then it would work perfectly fine in C++.

Upvotes: 4

user2993456
user2993456

Reputation:

You need to include the string library, you also need to provide a return type for your main function and your implementation may require you to declare an explicit return statement for main (some implementations add an implicit one if you don't explicitly provide one); like so:

#include <iostream>
#include <string> //this is the line of code you are missing

using namespace std;

int main()//you also need to provide a return type for your main function
{
    string password;
    cin >> password;
    if (password == "Lieutenant") {
        cout << "Correct!" << endl;
    } else {
        cout << "Wrong!" << endl;
    }
return 0;//potentially optional return statement
}

Upvotes: 8

Charlie
Charlie

Reputation: 1582

You need to declare the return type for main. This should always be int in legal C++. The last line of your main, in many cases, will be return 0; - i.e. exit successfully. Anything other than 0 is used to indicate an error condition.

Upvotes: 5

Related Questions