개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.14 19:46

stream_get_line 함수 사용 중 문제점

목록
  • Android개발광 오래 전 2025.06.14 19:46 인기
  • 823
    1
stream_get_line 함수를 사용하여 사용자 입력을 받으려고 하는데,
무한 루프가 발생하는 문제가 있습니다.

stream_get_line 함수의 마지막 인자로 설정한 버퍼 크기보다
사용자 입력이 더 길면 어떻게 될까요?
또한, stream_get_line 함수가 성공적으로 입력을 받은 후,
다시 stream_get_line 함수를 호출하면 이전에 받은 입력을 함께
읽어오는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    stream_get_line 함수는 사용자 입력을 받기 위해 사용하는 함수입니다.

    버퍼 크기보다 사용자 입력이 더 길면, stream_get_line 함수는 버퍼 크기를 초과하는 입력을 버리고, 성공적으로 입력을 받은 것으로 간주합니다.

    이후 stream_get_line 함수를 호출하면 이전에 받은 입력을 함께 읽어오지 않습니다.

    stream_get_line 함수는 한 번에 한 줄의 입력만 받을 수 있기 때문에, 이전에 받은 입력을 함께 읽어오기 위해서는 사용자 입력을 저장하고, 다시 stream_get_line 함수를 호출하여 저장된 입력을 읽어오는 방법을 사용해야 합니다.

    예를 들어,

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        char buffer[1024];
    
        char input[1024];
    
    
    
        printf("사용자 입력을 받기 위해 stream_get_line 함수를 사용합니다.n");
    
    
    
        while (1) {
    
            if (fgets(buffer, sizeof(buffer), stdin) != NULL) {
    
                printf("입력받은 내용: %s", buffer);
    
                strcpy(input, buffer);
    
            } else {
    
                break;
    
            }
    
        }
    
    
    
        printf("사용자 입력을 저장한 후 다시 stream_get_line 함수를 호출합니다.n");
    
    
    
        while (1) {
    
            if (fgets(buffer, sizeof(buffer), stdin) != NULL) {
    
                printf("입력받은 내용: %s", buffer);
    
                strcat(input, buffer);
    
            } else {
    
                break;
    
            }
    
        }
    
    
    
        printf("저장된 입력: %sn", input);
    
    
    
        return 0;
    
    }
    
    


    이 예제에서는 사용자 입력을 저장하고, 다시 stream_get_line 함수를 호출하여 저장된 입력을 읽어옵니다.

    이러한 방법을 사용하여 stream_get_line 함수를 사용하여 사용자 입력을 받을 때, 버퍼 크기보다 사용자 입력이 더 길거나, 이전에 받은 입력을 함께 읽어오기 위한 문제를 해결할 수 있습니다.

    2025-06-14 19:47

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,311건 / 30 페이지

검색

게시물 검색