인프런 커뮤니티 질문&답변

cksgur님의 프로필 이미지
cksgur

작성한 질문수

홍정모의 따라하며 배우는 C언어

7.7 논리 연산자 Logical operators

디버깅 관련 질문

작성

·

148

1

#include <stdio.h> #include <ctype.h> #include <stdbool.h> #define STOP '.' int main() { char c; int n_chars = 0; int n_lines = 0; int n_words = 0; bool word_flag = false; bool line_flag = false; printf("Enter text :\n"); while((c = getchar()) != STOP){ if(!isspace(c)){ n_chars++; } if(!isspace(c) && !line_flag){ n_lines++; line_flag = true; } if(c == '\n'){ line_flag = false; } if(!isspace(c) && !word_flag){ n_words++; word_flag = true; } if(isspace(c)){ word_flag = false; } } printf("Charaters = %d, Words = %d, Lines = %d\n", n_chars, n_words, n_lines); return 0; } 강의 내용 예제 코드인데 문자로 입력해야 디버깅이 가능한 예제 코드들은 어떻게 디버깅 하는지 알 수 있을까요??

답변 1

1

안녕하세요, 답변 도우미 Soobak 입니다.

 

#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
#define STOP '.'

int main() {
  char c;
  int n_chars = 0;
  int n_lines = 0;
  int n_words = 0;
  bool word_flag = false;
  bool line flag = false;

  printf("Enter text :\n");
  while ((c = getchar()) != STOP) {
    if (!isspace(c)) {
      n_chars++;
    }
    if (!isspace(c) && !lineflag) {
      n_lines++;
      line_flag = true;
    }
    if (c == '\n') {
      line_flag = false;
    }
    if (!isspace(c) && !word_flag) {
      n_words++;
      words_flag = true;
    }
    if (isspace(c)) {
      word_flag = false;
    }
   }

   printf("Characters = %d, Words = %d, Lines = %d\n", n_chars, n_words, n_lines);

   return 0;
}

 

입력을 필요로 하지 않는 다른 코드들을 디버깅하실 때와 마찬가지로, 원하시는 지점에 중단점(Breakpoint)을 설정하시고, 디버깅을 시작하시면 됩니다.

단계별로 진행(단축키F10)을 하시다가, 입력을 필요로 하는 시점, 즉, 프로그램이 입력을 기다리는 시점에서는 Visual Studio 의 출력 창(코드 입력 창 하단 부분)에서 사용자 입력을 전달할 수 있습니다.

 

cksgur님의 프로필 이미지
cksgur

작성한 질문수

질문하기