주어진 번호를 기반으로 텍스트 파일에서 특정 줄을 인쇄하는 함수를 작성하려고합니다. 예를 들어, 다음과 같은 파일이 포함되어 가정 해 봅시다 :텍스트 파일에서 번호가 매겨진 특정 줄을 어떻게 추출합니까? (C)
1 hello1 one
2 hello2 two
3 hello3 three
주어진 번호는 기능을 출력 "hello3 세 ','3 '인 경우. 주어진 숫자가 '1'이면 함수 출력은 'hello1 one'이됩니다.
나는 C에 매우 익숙하지만 여기까지는 나의 논리가있다.
내가 처음으로 상상 한 것은 파일 안에 '숫자'문자가 있어야한다는 것입니다. 그리고 뭐? 전화 번호를 기입하지 않고 라인을 작성하는 방법은 무엇입니까? 어떻게 '숫자'를 찾을 수 있습니까? 나는 그것이 매우 간단하다고 확신하지만 어떻게 해야할지 모른다. 여기에 지금까지 무엇을 가지고 :
void readNumberedLine(char *number)
{
int size = 1024;
char *buffer = malloc(size);
char *line;
FILE *fp;
fp = fopen("xxxxx.txt", "r");
while(fp != NULL && fgets(buffer, sizeof(buffer), fp) != NULL)
{
if(line = strstr(buffer, number))
//here is where I am confused as to what to do.
}
if (fp != NULL)
{
fclose(fp);
}
}
어떤 도움을 전혀 크게 감상 할 수있다.
문제 정의에 따르면, 나는 당신이 내용에 관계없이 3 행을 원한다고 생각했습니다. 그러나 솔루션은 "3"을 포함하는 행을 찾은 것 같습니다. 어느 쪽이 원하는거야? – Arun
@Arun, 나는 그가 3 행을 원한다고 생각하지만, 그는 그 목표를 달성하기 위해 예기치 않은 결과를 가진 코드를 작성했다. – MYMNeo
죄송합니다, 매개 변수가 '1'이면 "hello1 one"등이됩니다. 매개 변수가 '2'이면 "2"다음에 같은 행의 내용이 인쇄됩니다. –