scanf_s()에 문제가 있습니다. 함수 또는 스위치 함수, 내가 올바른 코드를 인식하지 못하고 처음에 다시 루프를 내 코드를 실행하지만, 그 후 잘 작동합니다. 그것은 간단한 계산기입니다.scanf_s를 가져올 수 없거나 스위치가 작동하지 않습니다.
방금 프로그래밍 학습을 시작한 이래로 몇 가지 쉬운 해결책이 있을지 모르지만 찾을 수 없습니다.
모든 텍스트는 핀란드어로되어 있지만 코드 자체가 이해되기를 바랍니다.
내가해야 할 것과해야하지 말아야 할 것을 배우기를 열망하기 때문에 모든 의견을 환영합니다.
#include <stdio.h>
#include <stdlib.h>
float luku1 = 0;
float luku2 = 0;
float tulos = 0;
char valinta = '\0';
int main()
{
system("cls");
printf("Minkä laskusuorituksen haluaisit tehdä? (+,-,*,/)\n");
fflush(stdin);
scanf_s("%c", &valinta);
switch (valinta){
case '+':
printf("Anna yhteenlaskettavat luvut.\n>");
scanf_s("%f %f", &luku1, &luku2);
tulos = luku1 + luku2;
printf("Lukujen summa on %4.2f\n", tulos);
break;
case '-':
printf("Anna vähennettävät luvut.\n>");
scanf_s("%f %f", &luku1, &luku2);
tulos = luku1 - luku2;
printf("Lukujen summa on %4.2f\n", tulos);
break;
case '*':
printf("Anna kerrottavat luvut.\n>");
scanf_s("%f %f", &luku1, &luku2);
tulos = luku1 * luku2;
printf("Lukujen tulo on %4.2f\n", tulos);
break;
case '/':
printf("Anna jaettavat luvut.\n>");
scanf_s("%f %f", &luku1, &luku2);
if (luku2 == 0)
{
printf("Nollalla ei voida jakaa.\n");
system("pause");
main();
}
else
{
tulos = luku1/luku2;
printf("Lukujen jako on %4.2f\n", tulos);
}
break;
default:
printf("En tunnistanut laskutoimitusta, yritä uudelleen.\n");
system("pause");
main();
break;
}
}
디버거 사용 방법을 익히십시오. –
'scanf()'에서 얻은 반환 값을 사용 [scanf_s()와 같은 비표준 함수는 사용하지 마십시오.] – wildplasser
디버깅하는 동안 scanf_s 다음에 입력과 상관없이 직접 대문자가됩니다. – Suff0cat1on