다음 코드는 하나 개의 문자 시간에 텍스트 파일을 읽고 표준 출력에 인쇄 :검색
#include <stdio.h>
int main()
{
char file_to_open[] = "text_file.txt", ch;
FILE *file_ptr;
if((file_ptr = fopen(file_to_open, "r")) != NULL)
{
while((ch = fgetc(file_ptr)) != EOF)
{
putchar(ch);
}
}
else
{
printf("Could not open %s\n", file_to_open);
return 1;
}
return(0);
}
하지만 그 대신 인쇄의 표준 출력을 [putchar (CH)] 내가 원하는 파일에서 다른 텍스트 파일에 제공된 특정 문자열을 검색합니다. strings.txt 및 출력 매치 라인과
text_file.txt
를 out.txt한다 :
1993 - 1999 Pentium 1997 - 1999 Pentium II 1999 - 2003 Pentium III 1998 - 2009 Xeon 2006 - 2009 Intel Core 2
strings.txt
을 : text_file.txt
의 세 제 라인이 일치 할 경우에이
Nehalem AMD Athlon Pentium
한다. C에서 파일 작업에 대한 연구를 해본 결과 fgetc
[내 코드에서와 같이] 한 줄을 fgets
과 한 줄, fread
한 줄로 읽을 수있는 것 같습니다. 내 상황에 완벽 할까?
왜이 프로그램을 쓰고있다?! grep/awk/sed를 사용하십시오. –
아니, 팀. 태그는 검색 용입니다. 아무도 그걸 찾지 않을거야. – GManNickG
예, 표준 유닉스 도구로는 몇 초 만에이 문제를 해결할 수 있습니다. 그러나 이것은 C 파일 IO에 대한 더 깊은 이해를 얻는 것입니다. –