C语言使用struct和fscanf 获取文件内容 然后进行查找file里面的一个匹配行

C语言使用struct和fscanf获取文件内容然后进行查找file里面的一个匹配行,比如文件test.txt如下385,Magic,38,1495,LiquidSoap... C语言使用struct和fscanf 获取文件内容 然后进行查找file里面的一个匹配行,比如文件test.txt如下
385,Magic,38,1

495,Liquid Soap.35,1
316,Chocolate Cookies,34,0
如果用户输入385则输出匹配第一行,如果输入495则输入显示第二行
求高手解答
展开
 我来答
kaixingui2012
2014-12-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6347万
展开全部
因为你的分隔符号是逗号,所以用fscanf()函数不太好,用fgets()函数,更适合你这个题目
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp;
char str[1024]; //尽可能大的串,足够读一行数据
char findstr[100];
printf("input string : " );
scanf("%s", findstr);
strcat(findstr,","); //加上一个逗号分隔符,防止误查,如385和3855要区分开
fp=fopen("test.txt","r");
if ( fp==NULL ) return -1;
while( fgets(str,sizeof(str),fp) )
{
if ( strncmp( str, findstr,strlen(findstr) )==0 )
{
printf("%s", str );
break;
}
}
fclose(fp);
return 0;
}
更多追问追答
追问
我使用struct的目的主要是方便对其中的值进行排序和计算,比如说如果第一行第三列为38,我能够计算得出价格打八折类似的功能。请问如何操作,谢谢!
我使用struct的目的主要是方便对其中的值进行排序和计算,比如说如果第一行第三列为38,我能够计算得出价格打八折类似的功能。请问如何操作,谢谢!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式