c - 在txt文件中查找字符串

标签 c

正在构建一个 C 程序,需要帮助。制作一个数据结构,我可以在其中填写用户信息,如姓名、姓氏、性别等,所有这些都进入一个文本文件。除了一件事,其他一切都工作正常。

主要部分

int main()
{
FILE *fp;
struct info
{
  char name[15];
  char surename[15];
  char gender[10];
  char education[15];
 } info;

char education1[50];

然后是代码的非重要部分,直到我们到达如果用户希望他可以选择仅显示具有例如学士学位的注册的地步。这是我实现它的程度,但它不起作用。有什么想法吗?

FILE *fp=fopen("info.txt", "a");
  while(fp!=NULL && fgets(education1, sizeof(eductaion1),fp)!=NULL)
  {
                 if(strstr(education1,"bachelors"))
                fprintf(fp, "\n%s %s %s %s",
                sem.name,
                sem.surename,
                sem.gender,
                sem.education,);
                if(fp!=NULL) fclose(fp);   

  }

最佳答案

您已经在append 模式下打开了文件,因此不会有任何内容可读。此外,我们不知道文件格式,但您的代码中所做的假设似乎与将结构写入文件不匹配...

还有:

    一旦进入 while 循环,
  • fp 将永远不会变为 NULL,因此文件将永远不会关闭。
  • 您正在尝试将整个结构写入循环内的文件(正如您正在阅读的那样)
  • education1eductaion1 是什么?您可能应该粘贴您的真实代码。

关于c - 在txt文件中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531291/

相关文章:

c - 如何在 Visual Studio 项目中引用用户定义段的开始?

c - 为什么局部变量不匹配全零条件?

java - 有什么方法可以释放通过 JNI/JNA 绑定(bind) C 代码而生成的 Java 代码中的内存?

使用gcc使用c语言更改gtk中按钮的颜色

c - 等待互斥量的线程如何恢复运行?

c - 如何制作这个正确的链接列表

c - 为什么我用 fgets() 读取的命令不适用于 execlp(),但硬编码的相同命令却能正常工作?

c - mpich 不写入文件

c - 在指针数组中输入字符串

无法从模块获取内核消息