Я новичок в программировании, и я пытался сделать калькулятор, и я добавляю цикл while, так что если вы хотите повторить, просто наберите "1", и программа повторится.Проблема в том, что, если я повторяю это, разрывы scanf()
не позволяют мне вводить что-либо в командную строку.(Я использую консольное приложение Visual C ++ для Windows)
Я пытался использовать fflush(stdin)
для очистки буфера клавиатуры, это тоже не сработало.
#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <Windows.h>
void main() {
char v;
int exit=1;
while (exit == 1) {
v = 0;
//Read what type of calcualtion the user wants to do.
printf("Type (+,-,*,/): ");
fflush(stdin);
scanf("%c", &v);
//system("cls");
//show the user for 2 sec what he chose
printf("Type you chose: %c", v);
Sleep(2000);
//system("cls");
//here the calcualtion will take place.
switch (v) {
case '+':
printf("\nTBD +");
break;
//Here are some more cases that i have excluded.
default:
printf("Please only use '+,-,*,/' above\n");
exit = 1;
break;
}
printf("\n do you want to repeat (1==yes|0==no): ");
scanf_s("%d", &v);
}
}
Результат при запуске этой программы выглядит следующим образом:
Type (+,-,*,/): +
Type you chose: +
TBD +
do you want to repeat (1==yes|0==no): 1
Type (+,-,*,/): Type you chose:
Please only use '+,-,*,/' above
do you want to repeat (1==yes|0==no):
Результат должен выглядеть примерно так:
Type (+,-,*,/): +
Type you chose: +
TBD +
do you want to repeat (1==yes|0==no): 1
Type (+,-,*,/): +
Type you chose: +
TBD +
do you want to repeat (1==yes|0==no): 1