2011-03-14 3 views
0

파일이 있고이 파일을 파일 작업을 사용하여 C 프로그램을 사용하여 읽으려고합니다. 그런 다음 해당 파일에서 매개 변수를 가져 오려고합니다. 말하자면 nalu_type = x입니다. 그래서 그 파일에서 문자열 nalu_type을 발견 할 때마다 값 x를 나에 의해 정의 된 배열에 넣고 싶습니다. 어떻게하는지 알려주세요. SanketC 프로그램을 사용하여 파일에서 특정 문자열을 감지하는 방법

답변

2

포맷이 nalu_type = X

fscanf(fp, "%s", buf); 
if !strcmp(buf, "nalu_type") 
{ 
    fscanf(fp, "%s", buf); 
    if (! strcmp(buf, "=")) 
    fscanf(fp, "%s", buf); 
    else 
    printf("\n Not a valid format"); 
} 

반복 상기 경우 파일의 끝까지 경우.

+0

덕분에 많이 작동합니다 .......... –

+0

세그먼트 오류가 발생합니다. 답을 자세히 설명해 주시겠습니까? – Nimit

+0

@sunmoon -'='기호 주위에 공백을 추가했습니다. 원래의 질문에는 그러한 질문이 없었습니다. 'strstr'는 공백없이 더 나은 선택 일 수 있습니다. – jww

0

이 여기에 숙제처럼 조금 소리가 있지만 사전에

덕분에 도움이 될 기본 전략입니다.

기본적으로 파일을 텍스트로 구문 분석하려고합니다. 반복적으로 문자열 "nalu_type ="의 색인을 찾은 다음 그 다음에 나오는 문자열을 가져옵니다. 누락 된 부분은 값 x를 구분합니다. 끝 구분 기호가 최소한 무엇인지 알아야합니다.

5
# include<stdio.h> 
# include <conio.h> 
# include <string.h> 

void main() 
{ 
    int noc=0,l; 
    FILE *fp; 
    char *str2,ch; 
    char*str1; 
    clrscr(); 
    printf("Enter the String to be matched\n"); 
    gets(str1); 
    l=strlen(str1); 
    fp=fopen("A.C","r"); 
    while(1) 
     { 
     ch=fgetc(fp); 
     if(ch==EOF) 
     break; 
     else if(ch==' ') 
     { 
      fgets(str2,l+1,fp); 
      if((strcmp(str1,str2))==NULL) 
      noc++; 
     } 
     } 

     printf("NO of occurence is: %d",noc); 
     getch(); 
} 
+0

파일 안의 첫 번째 문자열에서 주어진 문자열의 존재 여부를 확인하고 있습니까? 나는 그것이 건너 뛰게되고 있다을 생각한다. –

관련 문제