我想讀取一個文件,找到字符串「myprop」,並在「myprop」後面會出現一個「=」號然後是一個數字。我需要將這個數字打印成一個字符串,擺脫空白和評論。我能找到「myprop」字符串,然後我相信我應該使用fscanf,但我遇到了麻煩。如何打印特定字符串後的值
const char *get_filename_property()
{
const char *filename = "myfile.properties";
const char *propkey = "myprop";
char buffer[100], *buffPtr, lastChar, value[50];
int line_num=1, i=0;
FILE *fp;
fp=fopen("myfile.properties", "r");
if (fp == NULL)
perror("Error opening file\n\n");
while(fgets(buffer, 100, fp) != NULL)
{
if((strstr(buffer, propkey)) != NULL)
{
printf("Myprop found on line: %d\n", line_num);
printf("\n%s\n", buffer);
}
line_num++;
}
if (fp)
fclose(fp);
}
int main(int argc, char *argv[])
{
get_filename_property();
system("pause");
return(0);
}
如果什麼添加它位於第一裝載緩衝和它的其餘部分位於第二加載propkey'的'某些部分緩衝?在這種情況下,您無法在文件中找到「propkey」。 – deepmax
您是否需要在程序的任何位置實際使用該值,還是隻是將其打印出來?如果你所需要做的只是打印它,我不會費心轉換 - 只需找到'='符號(使用'strstr()'的返回值和''myprop''的已知長度來計算到哪裏開始掃描),然後直接複製後面的字符進行輸出,直到您點擊行或空格的末尾或另一個不屬於該值的字符。如果你需要這個值,而不是'sscanf()',找到這個值的開始,並使用合適的'strto?()'函數進行轉換。 – twalberg
除了隨機值位於主CPU寄存器之外,您可能還想考慮從'get_filename_property()'返回一些東西。 – WhozCraig