c - 在 C 中打开文件以进行读取
问题描述
我在 C 编程方面遇到了问题,希望大家能给予我很大的帮助。
我应该编写一个控制台应用程序来管理人力资源。下面的代码应该检查userlist.txt文件是否存在,如果存在,它会从中读取。代码编译并链接成功,但执行时出现分段错误。
bool userListAvailable() {
bool userListExist = false;
struct user_details userlist[number_of_employee];
FILE *userListFile=fopen("userlist.txt", "w");
if (!(userListFile == NULL)) {
fread(userlist, sizeof (userlist), 1, userListFile);
for (int i = 0; i < sizeof (userlist); ++i) {
if (strstr(userlist[i].email, "@") != NULL) {
userListExist = true;
break;
}
}
}
fclose(userListFile);
return userListExist;
}
知道我做错了什么吗?我尝试了其他几个几乎相似的问题,但都是徒劳的。
解决方案
除了顶部的讨论
for (int i = 0; i < sizeof(userlist); ++i) {
很可能是错误的,因为您想读取number_of_employee
而不是缓冲区中的字节数。
很可能你会得到一个段错误,userlist[i]
因为sizeof(userlist)
它可能比number_of_employee
推荐阅读
- r - 绘制多列的分布
- nuxt.js - nuxt-i18n 策略:no_prefix
- bash - bash 一次将 500 个目录从总共 160,000 个目录移动到子目录
- python - 当axis=0时,熊猫并行应用
- python - 如何将字符串与模式“Foo-Bar”匹配,其中 Bar 可以是列表的任何元素?
- java - Executor 服务在与 Completable future 一起使用时未正确关闭
- python - 如何获取子目录中所有文件的创建日期
- javascript - 将返回的承诺项分配给变量的问题
- javascript - 为什么这个 pubnub 游戏对我来说太慢了,如何解决?
- python - 如何在python中从pyqt4升级到pyqt5