/* char_add.c */
#include <stdio.h>
int main(void)
{
char a, b;
char result;
printf("-50 이상 + 50 이하의 수 둘 입력 : ");
scanf("%d %d", &a, &b);
result = a + b;
printf("두 수의 덧셈 결과 : %d \n", result);
return 0;
}
왜 저런 에러가 뜨는겨?
/* char_add.c */
#include <stdio.h>
int main(void)
{
char a, b;
char result;
printf("-50 이상 + 50 이하의 수 둘 입력 : ");
scanf("%d %d", &a, &b);
result = a + b;
printf("두 수의 덧셈 결과 : %d \n", result);
return 0;
}
왜 저런 에러가 뜨는겨?
스캔포멧은 형식 제대로 맞춰야함
그게 뭔소리임? 난 열혈강의에 나온것 그냥 따라만했는데.
scanf에 %d를 넣으면 다음 인자가 int*일거라고 생각하는데 &a, &b가 char라서 메모리가 침범된거임. int a, b;로 바꿔봐
http://ideone.com/2PSum0
그러면 자료형이 char이면 scanf못씀요? 무조건 int만 써야함?
자료형이 char인데 정수를 받고 싶으면 scanf("%hhd %hhd", &a, &b); 일케 쓰면 된다. length modifier를 붙이는건데 자세한건
http://en.cppreference.com/w/c/io/fscanf
근데 정수를 받을거면 이왕이면 int를 써. char랑 signed char랑 unsigned char랑 타입이 다른 변수임
이거 result 초기화안해서그런거아니냐 쓰레기값에 뭘더한다는거냐