我有一個文件,我想用C程序使用文件操作來讀取此文件。然後我想從該文件中獲取參數。可以說,nalu_type = x。因此,無論何時我在該文件中檢測到字符串nalu_type,我都想將值x放入由我定義的數組中。 請告訴我如何去做。如何使用C程序檢測文件中的特定字符串
由於提前 SANKET
我有一個文件,我想用C程序使用文件操作來讀取此文件。然後我想從該文件中獲取參數。可以說,nalu_type = x。因此,無論何時我在該文件中檢測到字符串nalu_type,我都想將值x放入由我定義的數組中。 請告訴我如何去做。如何使用C程序檢測文件中的特定字符串
由於提前 SANKET
如果格式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");
}
重複上述如果直到文件的結束。
這聽起來有點像作業,但這裏有一個基本策略,應該幫助。
你基本上只是想將文件解析爲文本。迭代地找到字符串「nalu_type =」的索引,然後得到之後的內容。你缺少的部分是分隔值x。你至少需要知道結束分隔符是什麼。
# 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();
}
您是否檢查文件內第一個字符串中給定字符串的發生?我想這是被跳過。 – 2012-10-08 15:17:53
非常感謝它的工作.......... – 2011-03-14 10:31:57
我得到分段錯誤。你能否詳細描述你的答案? – Nimit 2012-03-02 06:16:27
@sunmoon - 你在'='符號周圍加了空格。原來的問題沒有他們。如果沒有空格,'strstr'可能是更好的選擇。 – jww 2014-11-30 22:51:05