如何让用c语言搜索文件中的关键字,然后把关键字所在的一行,就是两个\n之间的东西显示出来在屏幕上?

比如我E盘里边有个txt文件,里边有几行字,都是以回车分行的。我怎么样才能输入一个字,然后就输出了那个字所在的那一行... 比如我E盘里边有个txt文件,里边有几行字,都是以回车分行的。我怎么样才能输入一个字,然后就输出了那个字所在的那一行 展开
 我来答
notverycool
2012-09-28
知道答主
回答量:14
采纳率:0%
帮助的人:2.2万
展开全部
最简单的方法,输入一个字后,在txt文件中进行循环getline操作,同时计数,匹配这个字。最后输出计数值就OK了
更多追问追答
追问
就是比如那个文件里有\n张三\t13356783456\n,我怎么样才能输入张或者三或者张三就能输出\n张三\t13356783456\n呢?麻烦您能写个示例代码吗?万分感谢 您
追答
#include 
#include
int main()
{
printf("请输入要匹配的文字:\n");
char searchword[20];
scanf("%s",searchword);
FILE *inf=fopen("E:\\a.txt","r");
while(true)
{
char eachline[40]={'\0'};
char temp;
int index=0;
bool getit=true;
bool compareover=false;
do
{
temp=fgetc(inf);
eachline[index]=temp;
if(searchword[index]=='\0')
{
compareover=true;
}
if(!compareover&&searchword[index]!=eachline[index])
{
getit=false;
}
index++;
}while(temp!='\n'&&temp!=EOF);
eachline[index]='\0';
if(getit)
{
printf("%s",eachline);
//
}
if(temp==EOF)
break;
}
system("pause");
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友52e5b82
2012-09-29
知道答主
回答量:22
采纳率:0%
帮助的人:10.6万
展开全部
每次读出一行,与你输入的字符进行字符串匹配,首先肯定是最长匹配,在最长匹配找不到的情况下,在进行对输入的字符分离,在逐个进行匹配。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式