2013-07-03 45 views
0

嗨,我有這樣的是否存在與fscanf等效的c運行時函數,它包含相同的參數列表?

while(fscanf(fp,"\n%d\t%s\t%s\t%X%X\t%d\t \n",&record.Index,record.Name,record.Empcode,&record.CSN_MSB,&record.AccessRights)!=EOF) 
{ 
    printf("\nIndex: %d\nEmployee Name: %s\nEmpcode: %s\nCSN: %X\nAccessRights: %d\n",record.Index,record.Name,record.Empcode,record.CSN_MSB,record.AccessRights); 
    sprintf(CSN_MSB_LSB,"%X", record.CSN_MSB); 
    if(strncmp(CSN_MSB_LSB,str,8)==0) 
    found=1;  
} 

的功能在這個代碼我的fscanf是閱讀從文件指針FD只有一條線,我想從文件讀取的所有行。 我我該怎麼辦這個 具有相同fscanf函數或者包含相同的參數列表fscanf函數任何替代請建議我

回答

0

我會嘗試的那種東西:

while(fscanf(fp,"%d%s%s%X%X%[^\n]*c", 
      &record.Index,record.Name,record.Empcode, 
      &record.CSN_MSB,&record.AccessRights)!=EOF) 
    { 

雖然,值得注意的是,您正在掃描6個項目並且僅存儲5個。此外,您正在使用sscanf,它接受一個指向某個字符的指針並將其傳遞給一個文件指針(文件描述符),如果要從文件讀取,則需要使用fscanf。您掃描的最後一個號碼永遠不會被存儲。 「[^ \ n]」表示掃描直到換行,並且代替您正在掃描的最後一個數字(儘管您不保存在您的示例中)並且「* c」使用該換行符。見this

+0

我編輯了我的問題 while(fscanf())not sscanf – amar

相關問題