循环内的switch语句有问题

时间:2019-02-27 21:40:30

标签: c++

所以这段代码只是我一直在处理的东西,但是我似乎无法使其正常工作。 switch语句在完成第一种情况后将不会继续循环。我只是想让它实质上改变单词中的字母。我不太确定如何解决它。任何帮助,将不胜感激。

这总是告诉我我需要更多单词,所以我只是随意写作,请不要介意这些单词,它们只是占位符,可以使系统对我的问题归纳为三个句子,从而减少对我的愤怒。

#include <iostream>
#include <cstdlib>
#include <string>
#include <cstring>
#include <fstream>
#include <cmath>
using namespace std;

int main()
{
    char ans;
    char fileName[50];
    string inp;
    int length;
    ifstream inpFile;
    ofstream outFile("output.txt");

    do{

        cout << "";

        cin.getline(fileName, 50);
        inpFile.open(fileName);

        if(!inpFile.is_open()){
            exit(EXIT_FAILURE);
        }   

        string word;
        char enc;
        char temp;

        length = word.length();
        char * cstr = new char [length + 1];
        strcpy(cstr, word.c_str());

        for(int i = 0; i < length; i++){

                    switch(cstr[i]){

                    case 'A':{
                        temp = cstr[i];
                        temp = '0';

                        enc = temp;
                        break;
                    }
                    case 'a':{
                        temp = cstr[i];
                        temp = '1';

                        enc = temp;
                        break;
                    }
                }
            cout << "test1";

        }

        cout << "Test2";

        delete[] cstr;

    }while(ans == 'Y' || ans == 'y');
    cout << "Test3";

}

1 个答案:

答案 0 :(得分:1)

您打开了文件,但从未从中读取任何内容。您的可变字将始终为空,因此长度为0。