use*_*445 0 c++ loops operators
你好.我正在尝试执行一段代码的构建问题.我是C++的新手,我正试图解决它,所以这个问题可能非常简单.我真的很感激任何人都可以帮助我.这是代码;
#include <iostream>
using namespace std;
int i = 0;
char input = ' ';
int main()
{
for(i = 1; i <= 100; ++i)
{
if((cin >> input) == 'a')
{
break;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是"if((cin >> input)=='a')"运算符'=='有问题
您遇到的问题是表达式cin >> input不会"返回"键入的字符,它将cin作为istream&对象返回.
对您的直接解决方案是:
if( ( cin >> input ) && ( input == 'a' ) )
{
break;
}
Run Code Online (Sandbox Code Playgroud)
检查的原因cin >> input是防御性的:如果由于任何原因,istream无法读取,它将变为无效.
简而言之,C++中的循环通常基于零,并且最好限制i变量的范围:
for( int i = 0; i != 100; ++i )
Run Code Online (Sandbox Code Playgroud)