다음은 텍스트 파일에서 데이터를 읽고 HTML을 제거하고 일반 텍스트 만 인쇄하는 코드입니다. 이 모든 일이 팽창하지만 텍스트 파일을 모두 읽는 데 문제가 있습니다. 어떻게하면 전체 텍스트 파일을 읽을 것인가? 아마 malloc을 사용할 필요가있을 것이지만 그렇게하는 방법을 모르겠다. 대신 단일 버퍼의 모든 텍스트를 수집동적 문자 버퍼 C
int i, nRead, fd;
int source;
char buf[1024];
int idx = 0;
int opened = 0;
if((fd = open("data.txt", O_RDONLY)) == -1)
{
printf("Cannot open the file");
}
else
{
nRead = read(fd, buf, 1024);
printf("Original String ");
for(i=0; i<nRead; i++)
{
printf("%c", buf[i]);
}
printf("\nReplaced String ");
for(i=0; i<nRead; i++)
{
if(buf[i]=='<') {
opened = 1;
} else if (buf[i] == '>') {
opened = 0;
} else if (!opened) {
buf[idx++] = buf[i];
}
//printf("%c", buf[i]);
}
}
buf[idx] = '\0';
printf("%s\n", buf);
close(source);
'0'이 될 때까지'read' 호출을 반복하고, 읽은 양을 추적하여 버퍼에 추가해야합니다. 아마도'realloc '을 통해 버퍼가 필요에 따라 커질 필요가있다. –