我修好了。感谢您的帮助。
我现在已经查看了很多文章,论坛帖子和主题;但是,没有人真正解决了我的问题。问题是我的fopen("file.txt", "w");
没有创建文件。
代码:
//
//Includes
#include <stdio.h>
int main ()
{
FILE *receipt = fopen("receipt.txt", "w");
//Create file
fprintf(receipt, "Price: %.2f$", purchase);
fprintf(receipt, "\nDiscount: %.2f$", discount);
fprintf(receipt, "\nTax %%: %.2f%%", tax_pct);
fprintf(receipt, "\nTaxes: %.2f$", tax);
fprintf(receipt, "\nTotal Price: %.2f$", end_price);
fprintf(receipt, "\n\nEnd of Receipt.");
fclose(receipt);
return 0;
}
我试过投入
if(!receipt) {
printf("Error!");
}
else {
fprintf(blabla);
}
但无济于事。
它根本不创建文件:/在Xcode和Mac上运行。没有警告/通知或其他东西让我知道什么是错的。
*我尝试添加system("pwd")
以确定它是否未将其保存在应保存的位置,但我实际上很难找到该目录(我不知道它是否是临时的,但是甚至所以文件应该在那里?)。显然我并没有质疑图书馆的实际有效性,呃,暗示我用fopen
没有给我的预期?
我无法向我提供任何有用的信息。一切似乎都应该起作用;我只是没有得到一个文件。如果你不想帮忙就不要写,请避免再使用smartass评论。*
此外,我删除了所有代码,但实际是fopen()
和fprintf()
。
答案 0 :(得分:8)
唯一有意义的解释是您没有权限在工作目录中创建文件,或者工作目录不在您要查找要创建的文件的位置。
fopen()
无效
嗯,当然有效。你不应该认为标准库不起作用。
没有警告/通知或其他东西让我知道什么是错的。
调用fopen()
后,您没有检查错误。如果您没有检查错误,您希望如何将它们交付给您?
答案 1 :(得分:7)
试试perror
。您可能没有权限或类似的东西。
FILE *receipt = fopen("receipt.txt", "w");
if (!receipt)
perror("fopen");
答案 2 :(得分:2)
文件已创建,但未达到您预期的位置。
检查工作目录(getcwd
)。
答案 3 :(得分:1)
您应该使用strerror
自行格式化错误或perror
以打印与错误匹配的系统错误。
man errno
可以帮助您
答案 4 :(得分:1)
我遇到了同样的问题。我正在使用 VSC 进行编码,我尝试了与您相同的代码,但它也不起作用。所以,我在其他问题中读到了大多数防病毒软件都在阻止 VSC。禁用我的 avast 防病毒软件后,问题已解决。