C语言怎么读取txt文本并匹配输入字符串?

我有一个txt文本在D盘的根目录下,里面每一行只有一个人名,我想做到输入一个人名就可以在txt文件里查找,然后返回有没有找到,找到了就输出1,没找到就输出22222,这个机制是无限循环的。请哪位大神回答一下,最好是完整的代码(包括头文件),谢谢!

第1个回答  2020-04-09

#include <stdio.h>



int main(void)

{

    char buff[101];

    char name[100];

    int flag = 0;

    FILE *fp;


    fp = fopen("D:/1.txt", "r");  // 文件路径 D:/1.txt

    if (!fp)

    {

        printf("err\n");

        return 0;

    }


    scanf("%s", name);

    while (fgets(buff, 100, fp) != NULL)

    {

        if (strstr(buff,name))

        {

            printf("1\n");

            flag = 1;

            break;

        }

    }


    if (flag == 0)

    {

        printf("222222\n");

    }


    return 0;

}

追答

需要包含 string.h

追问

这个不能识别中文啊,而且不能一直循环直到关闭程序为止。

追答

while((scanf("%s", name)) >= 1)
{
flag = 0;
fseek(fp,0,SEEK_SET);
while (fgets(buff, 100, fp) != NULL)
{
if (strstr(buff,name))
{
printf("1\n");
flag = 1;
break;
}
}

if (flag == 0)
{
printf("222222\n");
}
}

追问

但是不能识别中文啊

追答

while((scanf("%s", name)) >= 1)
{
flag = 0;
fseek(fp,0,SEEK_SET);
while (fgets(buff, 100, fp) != NULL)
{
if (strstr(buff,name))
{
printf("1\n");
flag = 1;
break;
}
}

if (flag == 0)
{
printf("222222\n");
}
}

用中文输入法 输入中文名字

追问

您好,请您看一下我的私信,谢谢。

本回答被提问者采纳
相似回答