c언어 입문자. 간단한 계산기에서 액세스 위반
조회수 606회
간단한 계산기를 만들어봤는데 액세스 위반이 뜨더라구요. 어디서 잘못됐는지 알고 싶습니다.
#include <stdio.h>
int main(void)
{
int num1=0, num2=0, result=0;
char oper;
start:
scanf_s ("%d %c %d", & num1, & oper, & num2); //여기서 엑세스 위반
if (oper == '+')
{
result = num1 + num2;
printf("%d %c %d = %d", num1, oper, num2, result);
}
else if (oper == '-')
{
result = num1 - num2;
printf("%d %c %d = %d", num1, oper, num2, result);
}
else if (oper == '/')
{
result = num1 / num2;
printf("%d %c %d = %d", num1, oper, num2, result);
}
else (oper == '*');
{
result = num1 * num2;
printf("%d %c %d = %d", num1, oper, num2, result);
}
goto start;
}
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
scanf_s 함수는 scanf 함수와 사용법이 조금 다릅니다. 문자나 문자열을 입력 받을 경우 입력 받는 공간의 크기를 알려줘야 합니다.
아래 코드 참고하세요.
- 코드
#include<stdio.h> int main(void) { int num1 = 0, num2 = 0, result = 0; char oper; start: scanf_s("%d %c %d", &num1, &oper, 1, &num2); if (oper == '+') { result = num1 + num2; printf("%d %c %d = %d\n", num1, oper, num2, result); } else if (oper == '-') { result = num1 - num2; printf("%d %c %d = %d\n", num1, oper, num2, result); } else if (oper == '/') { result = num1 / num2; printf("%d %c %d = %d\n", num1, oper, num2, result); } else if (oper == '*') { result = num1 * num2; printf("%d %c %d = %d\n", num1, oper, num2, result); } goto start; return 0; }
- 결과
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력