当我告诉它通过控制台执行此操作时,我的c ++循环不会停止
My c++ loop doesn't stop when i tell it to do it through the console
我做了一个循环,应该加密我告诉它的短语,但由于问题而没有完成。它应该检测到我在控制台中说"停止"并关闭循环。它不起作用。 我希望它做的是检测我是否说停止并打破循环。我不应该从其他单词中获取字母s t o p而获得任何随机失误。如您所见,每次出现无序字母时,它都会重置锁定所有 if 的向量,直到"c"以正确的顺序获得正确的字母。
using namespace std;
int main()
{
char c,v[5];
int i=0;
while(i!=1)
{
cin.get(c);
if(c=='s' or v[1]=='s')
{
v[1]='s';
if(c=='t' or v[2]=='t')
{
v[2]='t';
if(c=='o' or v[3]=='o')
{
v[3]='o';
if(c=='p' or v[4]=='p')
{
v[4]='p';
v[1]=v[2]=v[3]=v[4]=0;
i=1;
}
else
v[1]=v[2]=v[3]=0;
}
else
v[1]=v[2]=0;
}
else
v[1]=0;
}
cout<<c;
if (i==1)
break;
}
return 0;
}
那应该工作,而不是缩进的地狱代码。它假定您一次输入一个字符。
#include <iostream>
int main(int argc, char const *argv[])
{
char keyword[] = "stop";
char* matching_char = keyword;
char char_from_user;
while(*matching_char != ' ')
{
std::cin.get(char_from_user);
// Reset if different character
if(*matching_char != char_from_user)
matching_char = keyword;
// Increment position of match
if(*matching_char == char_from_user)
++matching_char;
// Ignore rest in buffer
std::cin.ignore();
}
return 0;
}
按照你的逻辑,你只需要在每个if/else条件之后分配v数组值,否则它只会立即重新分配给0。例如,您首先分配 v[1] = 's',然后在将其分配给 v[1] = 0 之后,因为 if 在第一次迭代中返回 false。下面的代码应该可以解决问题。
#include <iostream>
using namespace std;
int main()
{
char c,v[5];
int i=0;
while(i!=1)
{
cin.get(c);
if(c=='s' || v[1]=='s')
{
if(c=='t' || v[2]=='t')
{
if(c=='o' || v[3]=='o')
{
if(c=='p' || v[4]=='p')
{
v[4]='p';
v[1]=v[2]=v[3]=v[4]=0;
i=1;
}
else
v[1]=v[2]=v[3]=0;
v[3]='o';
}
else
v[1]=v[2]=0;
v[2]='t';
}
else
v[1]=0;
v[1]='s';
}
if (i==1)
break;
}
return 0;
}
相关文章:
- C++初学者:为什么我的编译器根据我的循环返回"name not found"?
- 是什么导致我的循环在第一次迭代中运行得更慢
- 谁能弄清楚为什么我的循环会失败?
- 当我告诉它通过控制台执行此操作时,我的c ++循环不会停止
- 如何防止我的循环额外运行一次?
- 我的循环超时并且不显示结果
- 如果输入变量的数据类型与以前不同,如何使我的循环仍然正常运行?
- 我的循环未完成,当文件到达文件末尾时如何关闭它
- 为什么我的循环没有写入 txt 文件
- 为什么我的循环完整收集数据不在动态分配的数组中
- 我如何使我的循环转到char*阵列的尽头,并将每个城市都放在链接的列表中(城市被划分为白色的空间)
- 为什么我的循环是无限的?我已经用 91 进行了测试
- 似乎诅咒导致我的循环提前中断
- 我的循环不会循环
- 如何使我的循环搜索空白空间
- 我需要帮助在我的循环中获得新的平均值
- 为什么我的循环不会产生输出
- 为什么我的循环无法正常工作
- 我的循环保持循环,并导致程序崩溃
- C - 我的循环一直添加到0