sujae03   3년 전

안녕하세요,

Test Case 입력 받을 때 생기는 문제에 대해 질문드리고자 합니다.

C언어 기준으로 입력 받을 때, scanf()를 사용하잖아요.

근데 scanf는 '\n' (개행문자)를 가져오지 못하기때문에

개행문자가 발생하는 순간에 취약한 것으로 알고있습니다.


그래서 저는 보통 getchar()를 이용해서 개행문자를 입력받고 버리는데요,

제가 Visual Studio에서 돌릴 때는 문제에 대한 정답이 정확하게 나오는데,

답을 제출하면 틀리게 나오더라구요...


이유가 있을까요 ?

예시를 남기도록 하겠습니다.


[Input]

6 6
100010
111000
100000
101001
000100
101110
1 2

 scanf("%d %d", &Y, &X);
 getchar();
 for (int i = 0; i < X; i++)
 {
  for (int j = 0; j < Y; j++)
  {
   scanf("%c", &ch);
   map[i][j] = ch - 48;
   if (map[i][j] == 1)
   {
    JugglingNum++;
   }
  }
  getchar();
 }
 scanf("%d %d", &goY, &goX);




sujae03   3년 전

답변 감사합니다 ^^;


scanf("%c\n"); 이렇게 말씀이신가요 ???

댓글을 작성하려면 로그인해야 합니다.