我刚开始C++像一个星期前,不知道如何解决这个错误! 我不确定我是否正确地声明了作业变量。。。所以如果它是错误的,请告诉我如何声明它! 如果CIN>>作业的输入为none,我希望If语句为true,输出为“accepted!”
#include <iostream>
using namespace std;
int main()
{
int age;
char job;
cout<<"Enter your age:";
cin >> age;
cout<<"\n";
cout<<"Enter your job:";
cin>>job;
cout<<"\n";
if (age > 18 && age < 60 && job == none ) {
cout << "Accepted!" << endl;
}
return 0;
}
错误消息:
./Playground/file0.cpp: In function 'int main()':
./Playground/file0.cpp:16:40: error: 'none' was not declared in this scope
16 | if (age > 18 && age < 60 && job == none ) {
| ^~~~
编译器将none
视为标识符,而您显然没有该标识符。 那就是错误的原因。 您可能希望有“none”
,它在C++中的类型是常量char[5]
。
为了进行比较,在C++中,可以使用std::string
。 这意味着将作业
更改为std::string
。 其次,如果作业
中有空格,您可能还需要使用std::getLine
。
下面是演示的示例代码:
#include <iostream>
#include <string> // std::string
int main()
{
std::cout << "Enter your age: ";
int age;
std::cin >> age;
std::cout << "\nEnter your job:";
std::string job; // declare like this
std::cin.ignore();
std::cin.clear(); // to clear the input stream.
std::getline(std::cin, job); // get the user input, which may have spaces!
if (18 < age && age < 60 && job == "none")
{
std::cout << "\nAccepted!\n";
}
}
您的代码有两个错误,第一个错误是变量job
。 由于您将它定义为一个字符,所以变量只能保存一个字符,但是由于要保存的是一组字符(在本例中是作业标题),您要么需要一个char
C样式的数组,例如char job[32]
,其中32是数组可以容纳的最大字符量:或者由于您使用的是C++,您有可以存储字符数组的string
类型,并且在定义变量时不需要分配最大大小。 因此,您的代码应该如下所示:
#include <iostream>
using namespace std;
int main()
{
int age;
string job;
...
第二个问题出现在if
语句中。 未定义变量none
。 如果要检查变量job
是否为空,可以使用以下命令
if (age > 18 && age < 60 && job == "") {
cout << "Accepted!" << endl;
}
“”
等于空字符串。 祝你使用C++好运。
把none变成字符串就行了。 您正在将job与一个名为none的变量进行比较。 但您应该将其与字符串“none”进行比较。 请尝试执行以下操作:
if (age > 18 && age < 60 && job == "none" ) {
cout << "Accepted!" << endl;
}