C언어

E0349 이러한 피연산자와 일치하는 ">>"연산자가 없습니다. char, int 크기 문제에서

mcdn 2020. 5. 1. 14:16
반응형

E0349 이러한 피연산자와 일치하는 ">>"연산자가 없습니다. 

 

다양한 경우에서 이 문제가 일어나는데

 

나같은 경우 int char를 혼동하여 생긴 문제. 

 

이중 int배열에서는 한 줄을 한꺼번에 받을 수 없다. ex) int map[4][4]로 정의 시 

cin >> map[i]  // 3579 

이렇게 받을 수 없다. 

 

1. 애초에 map[i][j]는 int형인데 map[i]로 받는다니 말이 안된다 

2. 만약 cin >> map[i][j]라고 했어도 3579라고 한꺼번에 받으면 

각각 3 5 7 9 에 들어가는게 아니라 map[i][0]에 한꺼번에 3579가 들어간다. 

 

 

char map[4][4] 는 

cin >> map[i] // abc 혹은 357

등 한꺼번에 받을 수 있다. 

 

 

따라서 입력은 3579인 반면 3 5 7 9 따로따로 배열에 저장하고 싶다면 

% 10 등 연산을 해서 계산하는 단계가 필요할 것이다. 

 

반응형