我是 C 新手,刚刚开始学习如何在 Xcode 中创建和写入文件。我了解一些 Python 和 bash,并且能够读取、写入、追加、创建、删除、移动文本文件,但这个问题让我有点困惑。
基本上,我尝试使用 fopen() 在写入模式下创建并打开一个新的 .txt 文件。我尝试仅使用“filename.txt”方法,假设创建的文件与我当前打开的项目位于同一文件夹中。构建成功,但该文件夹中没有创建新文件。我尝试在 cwd 中查找它,但也不存在。接下来,我尝试了完整文件路径方法,尝试将其放在桌面上,然后尝试了项目文件夹的路径,然后尝试了用户/用户/文件夹中新文件夹的更简单的直接路径。每次构建成功但到处都找不到文件。
我第一次尝试检查错误是使用类似“if( perror() ) else {printf("Nothing bad"}" 的方法,它有效并返回“Nothing Wrong!”
其他人也有类似的问题,但似乎他们都返回了错误,我不知道如何解决它,因为除了文件没有在指定位置创建之外,似乎没有任何错误。
其他可能有用的注意事项:我在 iCloud Drive 上有一个桌面,如果您选中“获取信息”,我计算机上的大多数文件都存储在 iCloud/... 位置。
int main() {
FILE * fpointer = fopen("C:/Users/(name)/Documents/c_projects/Giraffe/Giraffe/employees.txt", "w");
fclose(fpointer);
return 0;
}
有两个问题:
“C:/Users/(name)/Documents/c_projects/Giraffe/Giraffe/employees.txt”绝对不是Mac OS路径,它看起来更像是Windows路径。也许你应该使用“/Users/(name)/Documents/c_projects/...”
您不检查错误。如果不成功,
fopen
返回NULL
,但你忽略它并使用NULL文件指针调用fclose
,这是未定义的行为。
你想要这样的东西:
int main() {
FILE * fpointer = fopen("some path", "w");
if (fpointer != NULL)
{
do something with fpointer
...
fclose(fpointer)
}
else
{
// display error message and/or take appropriate action
}
return 0;
}