正在构建一个 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
,因此文件将永远不会关闭。- 您正在尝试将整个结构写入循环内的文件(正如您正在阅读的那样)
education1
和eductaion1
是什么?您可能应该粘贴您的真实代码。
关于c - 在txt文件中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531291/