Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 디스크 축소
- lifecycle
- 젠킨스
- DMA
- 안드로이드
- list
- fscanf
- interrupt context
- sprintf
- socket
- interrupt handler
- 소캣
- 프레임버퍼
- fprintf
- SDK
- pagefile.sys
- jenkins
- intents
- memcmp
- sscanf
- layouts
- context
- makefile
- 문자형 디바이스 파일
- 환경 변수
- activities
- 스레드
- context switch
- HDR
- 멀티프로세싱
Archives
- Today
- Total
do{학습}while
c) fgets() 본문
기능 요약
개행 문자(\n) 포함하여 표준 입력에서 문자열을 가져온다.
스트림에서 문자열을 받아서 (num - 1)개의 문자를 입력 받을 때 까지 혹은 개행 문자(\n) EOF(End_Of_File)에 도달할 때 까지 입력 받아 문자열을 저장
fgets()에는 커서가 존재해서 읽어드린 이후에 커서가 그 다음으로 이동해서 다음 문자열을 읽어들일 수 있다.
헤더파일
#include <stdio.h> // C++ 에서는 <cstdio>
원형
char* fgets(char* str, int num, FILE* stream);
반환값
정상적으로 입력이 되었을 경우 읽어드린 값을 반환합니다.
만약 EOF 혹은 에러를 마주했을 경우 NULL을 반환합니다.
주의 사항
만약 num을 3으로 전달하고 개행 문제를 전달하고 입력하고 싶다면 하나의 문자만을 입력해야한다.
_ _ _ → 1 \n \0
이런 식으로 입력이 되기 때문이다.
예시 코드
#include <stdio.h>
#include <string.h>
int main() {
char str[50]; // 버퍼 크기를 50으로 설정
printf("문자열을 입력하세요: ");
if (fgets(str, sizeof(str), stdin) != NULL) {
// 개행 문자 제거
size_t len = strlen(str);
if (len > 0 && str[len - 1] == '\\n') {
str[len - 1] = '\\0';
}
printf("입력한 문자열: %s\\n", str);
} else {
printf("입력 오류 또는 EOF.\\n");
}
return 0;
}
'C & C++ > c언어 표준함수' 카테고리의 다른 글
c) getchar() (0) | 2024.05.28 |
---|---|
c) puts() (0) | 2024.05.28 |
c) memcmp() (0) | 2024.05.27 |
c) sscanf() (0) | 2024.05.27 |
c) sprintf() (0) | 2024.05.27 |