C++ 卡在无限循环上

C++ 卡在无限循环上,c++,loops,C++,Loops,这里没有程序员。参加我在大学里的第一堂CS课程,并在这里发表第一篇博文,所以如果我提供的信息不够先进,请原谅 仍在试图找出循环。似乎明白了,但一旦循环中有循环,或者循环中有if语句,我就会被抛出,不知道如何继续。对于我的任务,我需要发生以下情况 是否要处理文件中的所有记录?(是/否)西 请输入y或n。 是否要处理文件中的所有记录?(是/否)否 输入要处理的记录数:2 XXXXXXXXX错误非数字或负值,请重试 输入要处理的记录数:10 这是我的密码: char a = 0;

这里没有程序员。参加我在大学里的第一堂CS课程,并在这里发表第一篇博文,所以如果我提供的信息不够先进,请原谅

仍在试图找出循环。似乎明白了,但一旦循环中有循环,或者循环中有if语句,我就会被抛出,不知道如何继续。对于我的任务,我需要发生以下情况

是否要处理文件中的所有记录?(是/否)西 请输入y或n。 是否要处理文件中的所有记录?(是/否)否 输入要处理的记录数:2 XXXXXXXXX错误非数字或负值,请重试 输入要处理的记录数:10

这是我的密码:

char a = 0;             //User chooses Y or N
int ProcessAmount = 0;  //Amount of times to process if not all

  cout << "Would you like to process all the records in the file? (y/n) ";
  cin >> a;

  do{

    bool notDone = true;

      if(a  == 'n'){
        while(notDone){
              cout << "Enter records to process: ";
              cin >> ProcessAmount;

              if (cin.fail()){
                  cin.clear();
                  cin.ignore(40,'\n');
                  cout << "" << endl;
              }
              else{
                  notDone = false;  
              }
        }
      }else if(a != 'y' or a != 'n');
            cout <<"Please enter either y or n." << endl;

  }while( a != 'y');  
chara=0//用户选择Y或N
int ProcessAmount=0//要处理的时间量(如果不是全部)
cout>a;
做{
bool notDone=true;
如果(a='n'){
虽然(未完成){
处理量;
if(cin.fail()){
cin.clear();
cin.忽略(40,“\n”);

cout大多数问题都在评论中解释,下面是我将如何解决它:

char a=0;//用户选择Y或N
int ProcessAmount=0;//如果不是全部,则处理的次数
cout>a;
而(a!=“y”){
bool notDone=true;
如果(a='n'){
虽然(未完成){
处理量;
if(cin.fail()){
cin.clear();
cin.忽略(40,“\n”);

cout您只需将y/n请求从循环中删除,那么“a”永远不会更改其值。查看您可能需要的更改:

do {
    cout << "Would you like to process all the records in the file? (y/n/f) ";  //f to break the loop
    cin >> a;

    bool notDone = true;

    if (a  == 'n') {
        //. . .
    } else if (a == 'y') {
        //You may want to do something when yes
    } else if (a != 'f')
              cout <<"Please enter either y/n or f." << endl;

} while( a != 'f')
do{
cout>a;
bool notDone=true;
如果(a='n'){
//. . .
}如果(a='y'){
//如果是,你可能想做点什么
}否则,如果(a!=“f”)

难道我忘了添加!循环出现在这里:“请输入y或n。”你认为
a
将如何在该循环中进行更改?我不确定你的意思。我只是使用a来声明用户的选择,即y或n,但如果输入既不是“y”也不是“n”,则必须获得新的输入。因此,我需要它来提示用户输入y或n。也就是说,如果用户没有输入y或n。因此,我有else if st(a!='y'或a!='n'的注释)这是错误的吗?仍在试图找出正确的缩进,由于编辑器的简单性,刚切换到VSCode。目前使用集成到我的学校linux服务器的vim,这使得使用起来非常混乱。谢谢!您的示例确实有效,只是为了澄清,不需要bool语句?我能删除它吗?我添加ed one假设我需要一个else语句来完成if cin.fail语句最有可能的是有设置代码格式的快捷方式(try
Ctrl+Shift+I