2011-03-14 42 views
0

我有一個文件,我想用C程序使用文件操作來讀取此文件。然後我想從該文件中獲取參數。可以說,nalu_type = x。因此,無論何時我在該文件中檢測到字符串nalu_type,我都想將值x放入由我定義的數組中。 請告訴我如何去做。如何使用C程序檢測文件中的特定字符串

由於提前 SANKET

回答

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

非常感謝它的工作.......... – 2011-03-14 10:31:57

+0

我得到分段錯誤。你能否詳細描述你的答案? – Nimit 2012-03-02 06:16:27

+0

@sunmoon - 你在'='符號周圍加了空格。原來的問題沒有他們。如果沒有空格,'strstr'可能是更好的選擇。 – jww 2014-11-30 22:51:05

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

您是否檢查文件內第一個字符串中給定字符串的發生?我想這是被跳過。 – 2012-10-08 15:17:53

相關問題