Программа, которая продолжает работать, пока пользователь не введет n для выхода - PullRequest
0 голосов
/ 20 сентября 2018

Я работаю над заданием, которое позволяет пользователю вводить «тип» и «вес», и оно будет отображать стоимость.Вот кодЯ хочу, чтобы он продолжал работать, пока пользователь не введет 'n'.

main()
{   
    char type,chr;
    float cost,weight;

    do
    {   
        printf("Insert the type of fish: ");  /*inputs type and weight*/ 
        scanf("%c",&type);
        printf("insert weight: ");
        scanf("%f",&weight);

        switch(type)                        
        {
            case 'K':
            case 'k':
                cost=weight*9.00;
                break;
            case 'R':
            case 'r':
                cost=weight*10.00;
                break;
            case 'S':
            case 's':
                cost=weight*12.00;
                break;
            case 'G':
            case 'g':
                cost=weight*8.00;
                break;
            case 'T':
            case 't':
                cost=weight*15.00;
                break;
            default :
                printf("Invalid type\n");
        }
        printf("The cost of fish is:%.2f \n",cost);
        printf("Do you want to continue?Y/N: ");
        scanf(" %c",&chr);
    }
    while(chr == 'Y' || chr == 'y');
}

Я использовал цикл do..while, он работал нормально, пока я не набрал 'y', и я не могу ввести тип.

it looked something like this

1 Ответ

0 голосов
/ 20 сентября 2018

Чтение типов из потока stdin предполагает, что вы точно знаете, что будет дальше в потоке.Как упоминает Стрираг, у вас, скорее всего, будет следующий символ ввода в качестве следующего входного символа.Вы можете сортировать это, выкидывая значение chr (попробуйте в шестнадцатеричном виде, например,% 0x).Упомянутая статья также предлагает хороший совет: введите текст в виде% s (или используйте readline), а затем проанализируйте ввод.Посмотри в стрток.А также помните, что stdin может быть перенаправлен из канала (например, out.exe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...