fgets로 여러 줄 파일 읽기
fgets()
를 통해 파일의 내용을 읽습니다.하지만 여러 줄도 읽을 수 있었으면 좋겠어요.fgets
함수는char *
: 파일에서 읽는 문자열을 제어하는characterpointerint
: 파일에서 읽는 문자열의 최대 길이FILE *
: 파일 흐름의 지침.stdin
도 가능합니다.fgets
함수로서의 행위fgets
만 사용하면 한 줄만 읽을 수 있다.이를 감안하여
while
순환로를 합병할 것이다.또한 각 줄을 읽을 때 주의점으로 마지막 줄에
\n
를 fgets로 삽입하는 행위이기 때문에 주동적으로 제거할 필요가 있다.이것도 파일의 마지막 줄 이외에 발생하는 것을 고려한다.
코드는 다음과 같습니다.
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 20
int main () {
FILE *fp;
char str[100];
fp = fopen("file.txt", "r");
if(fp == NULL){
perror("error opening file\n");
return 0;
}
int l = 0;
while (fgets(str, MAX_LINE_LENGTH, fp) != NULL) {
// need to check if the last character is \n and
if(*str && str[strlen(str) - 1] == '\n'){
str[strlen(str) - 1] = 0;
}
printf("%d: %s\n", l, str);
l++;
}
fclose(fp);
return 0;
}
읽기 대상의 파일은 다음과 같다.file.txt
의 내용은 다음과 같다.hogehoge11
hogehoge22
hogehoge33
출력.참고 자료
Reference
이 문제에 관하여(fgets로 여러 줄 파일 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/peg/articles/2323f6e236a27a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)