C++ 这部分c+有什么问题+;密码 intf=0; std::cout f; 如果(f='y'| f=='n'){ 如果(f='y'){ 此->决策向量[0]=1; }否则 此->决策向量[0]=0; } std::cout f; 如果(f='y'| f=='n'){ 如果(f='y'){ 此->决策向量[1]=2; }否则 此->决策向量[1]=0; f=0; } std::cin.clear(); std::cout f; 如果(f='y'| f=='n'){ 如果(f='y'){ 此->决策向量[2]=4; }否则 此->决策向量[2]=0; f=0; } std::cin.clear(); std::cout f; 如果(f='y'| f=='n'){ 如果(f='y'){ 此->决策向量[3]=8; }否则 此->决策向量[3]=0; f=0; }
为什么我只能在第一条语句中设置f,如果程序没有在其他语句中停止 在第二个块中,您正在读取k,但使用yC++ 这部分c+有什么问题+;密码 intf=0; std::cout f; 如果(f='y'| f=='n'){ 如果(f='y'){ 此->决策向量[0]=1; }否则 此->决策向量[0]=0; } std::cout f; 如果(f='y'| f=='n'){ 如果(f='y'){ 此->决策向量[1]=2; }否则 此->决策向量[1]=0; f=0; } std::cin.clear(); std::cout f; 如果(f='y'| f=='n'){ 如果(f='y'){ 此->决策向量[2]=4; }否则 此->决策向量[2]=0; f=0; } std::cin.clear(); std::cout f; 如果(f='y'| f=='n'){ 如果(f='y'){ 此->决策向量[3]=8; }否则 此->决策向量[3]=0; f=0; },c++,C++,为什么我只能在第一条语句中设置f,如果程序没有在其他语句中停止 在第二个块中,您正在读取k,但使用y int f =0; std::cout << " do you want to use 1. component y or n " << std::endl; std::cin >>f; if(f == 'y' || f =='n'){ if (f =='y'){ this->decisio
int f =0;
std::cout << " do you want to use 1. component y or n " << std::endl;
std::cin >>f;
if(f == 'y' || f =='n'){
if (f =='y'){
this->decisionvector[0] = 1;
}else
this->decisionvector[0] = 0;
}
std::cout << " do you want to use 2. component y or n " << std::endl;
std::cin >>f;
if(f == 'y' || f=='n'){
if (f =='y'){
this->decisionvector[1] = 2;
}else
this->decisionvector[1] = 0;
f= 0;
}
std::cin.clear();
std::cout << " do you want to use 3. component y or n " << std::endl;
std::cin >>f;
if(f == 'y' || f =='n'){
if (f =='y'){
this->decisionvector[2] = 4;
}else
this->decisionvector[2] = 0;
f= 0;
}
std::cin.clear();
std::cout << " do you want to use 4. component y or n " << std::endl;
std::cin >>f;
if(f == 'y' || f =='n'){
if (f =='y'){
this->decisionvector[3] = 8;
}else
this->decisionvector[3] = 0;
f= 0;
}
在第二个区块中,您正在阅读k,但使用y
int f =0;
std::cout << " do you want to use 1. component y or n " << std::endl;
std::cin >>f;
if(f == 'y' || f =='n'){
if (f =='y'){
this->decisionvector[0] = 1;
}else
this->decisionvector[0] = 0;
}
std::cout << " do you want to use 2. component y or n " << std::endl;
std::cin >>f;
if(f == 'y' || f=='n'){
if (f =='y'){
this->decisionvector[1] = 2;
}else
this->decisionvector[1] = 0;
f= 0;
}
std::cin.clear();
std::cout << " do you want to use 3. component y or n " << std::endl;
std::cin >>f;
if(f == 'y' || f =='n'){
if (f =='y'){
this->decisionvector[2] = 4;
}else
this->decisionvector[2] = 0;
f= 0;
}
std::cin.clear();
std::cout << " do you want to use 4. component y or n " << std::endl;
std::cin >>f;
if(f == 'y' || f =='n'){
if (f =='y'){
this->decisionvector[3] = 8;
}else
this->decisionvector[3] = 0;
f= 0;
}
您应该将
int f
更改为char f
您应该将int f
更改为char f
std::cin >>k;
if(k == 'y' || k=='n'){
if (f =='y'){
this->decisionvector[1] = 2;
}else
this->decisionvector[1] = 0;
f= 0;
}
读取并解释字符序列
如果f
是int
,它将使用提取操作符操作符>
的int
重载。此运算符将尝试将输入格式化为整数
如果用户传递字符'y'
,操作员将无法将其解释为整数,并将0
存储在f
中。您可以使用cin.fail()
检查流的错误状态
如果要读取字符,必须使用char
读取并解释字符序列
如果f
是int
,它将使用提取操作符操作符>
的int
重载。此运算符将尝试将输入格式化为整数
如果用户传递字符'y'
,操作员将无法将其解释为整数,并将0
存储在f
中。您可以使用cin.fail()
检查流的错误状态
如果要读取字符,必须在读入
k
但比较f
的第二个块中使用char
。这显然是错误的。我编辑了代码,但仍然存在相同的问题。使用调试器逐步检查代码,并查看发生了什么。在第一个if语句f为0之后,在cin>>中,f没有等待输入?在第二个块中,您正在读取k
,但正在比较f
。这显然是错误的。我编辑了代码,但仍然存在同样的问题。使用调试器逐步检查代码,看看发生了什么。在第一个if语句f为0之后,在cin>>中,f没有等待输入?我只是猜测,但我想到的第一件事是关于char和int的物理维度(8位,16代表unicode,4字节代表int)。是的,你可以用一个数字来检查字符,比如'c'==35,但我认为使用int变量是不安全和正确的。@Enginestd::cin::operator>>(int&)
将字符序列解析为一个整数值。std::operator>>(istream&is,char&c)
将提取字符并按原样存储其值。我只是猜测,但我想到的第一件事是关于字符和int的物理尺寸(8位,unicode为16位,int为4字节)是的,你可以用一个数字来检查字符,比如'c'==35,但我认为使用int变量是不安全和正确的。@Enginestd::cin::operator>>(int&)
将把字符序列解析成整数值。std::operator>(istream&is,char&c)
将提取字符并按原样存储其值。