#include
#include
#include
#include
#include
#include
using namespace std;
vector A;
vector B;
int main(){
int x,y;
std::cin >> x >> y;
for (size_t i = 0; i < x; i++) {
char A_List[500] = {
0,
};
cin.getline(A_List, 500);
char *token = strtok(A_List, " ");
while (token != NULL) {
A.push_back(atoi(token));
token = strtok(NULL, " ");
}
}
for (size_t j = 0; j < x; j++) {
char B_List[500] = {
0,
};
cin.getline(B_List, 500);
char *token1 = strtok(B_List, " ");
while (token1 != NULL) {
B.push_back(atoi(token1));
token1 = strtok(NULL, " ");
}
}
for (size_t i = 0; i < x; i++) {
for (size_t j = 0; j < y; j++) {
std::cout << A[i*y + j] + B[i*y + j] << " ";
}
std::cout << '\n';
}
}
전체 코드입니다.
잘 돌아가긴 합니다. 근데 문제는
for (size_t i = 0; i < x; i++) {
char A_List[500] = {
0,
};
cin.getline(A_List, 500);
char *token = strtok(A_List, " ");
while (token != NULL) {
A.push_back(atoi(token));
token = strtok(NULL, " ");
}
}
이거 여러가지 시도로 디버깅 해본 결과 i가 0일 때 getline이 동작하지를 않습니다. 근데 이게 이해가 안갑니다. 왜죠?
심지어는 더 웃긴건
for (size_t j = 0; j < x; j++) {
char B_List[500] = {
0,
};
cin.getline(B_List, 500);
char *token1 = strtok(B_List, " ");
while (token1 != NULL) {
B.push_back(atoi(token1));
token1 = strtok(NULL, " ");
}
}
위에거 복붙해서 A만 B로 token만 token1로 고쳐쓴 이건 또 j든 i든 0일 때 getline이 작동합니다.
도대체가.... 뭔일이 일어나고 있는건지 이해가 안갑니다? 도대체 뭔..... 뭐죠 이게?
다시 말하지만 코드는 문제 없이 돌아갑니다. 다 제대로 작동하고요. 근데 위 for문과 아래 for문이 아예 구조가 똑같은데 하나는 0에 작동을 하고 하나는 0에 작동을 안하는 기묘한 현상이 일어나서.....