我修好了。谢谢你的帮助。
我现在已经浏览了不少文章,论坛帖子和主题在这里;然而,没有一个真正解决了我的问题。问题是我的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
没有给我我所期望的?
我不能让佩洛给予我任何有用的信息,一切都将按照它应该的方式运行;我只是没有得到一个文件。请避免任何更多的自作聪明的评论,如果你不想帮助只是不要写。*
此外,我删除了所有代码,但实际的fopen()
和fprintf()
。
6条答案
按热度按时间zzlelutf1#
唯一有意义的解释是您没有在工作目录中创建文件的权限,或者工作目录不是您要查找要创建的文件的位置。
fopen()
不工作当然,它是有效的。你不应该有标准库不起作用的想法。
没有警告/通知或其他东西给予我任何想法是什么错误。
调用
fopen()
后未检查错误。如果不检查错误,如何将错误发送给您?mxg2im7a2#
尝试
perror
。可能您没有权限或类似的问题。zvokhttg3#
文件已创建,但未在预期位置创建。
检查工作目录(
getcwd
)。carvr3hs4#
我有同样的问题。我使用VSC编码,我尝试了相同的代码作为你的,它也不工作。所以,我读到的其他问题,大多数的防病毒软件都阻止VSC。禁用我的avast防病毒后,问题已经解决。
tct7dpnv5#
您应该使用
strerror
自行格式化错误,或使用perror
打印与errno匹配的系统错误。man errno
可以帮助您nwlqm0z16#
在我的例子中,防病毒程序阻止代码创建文件,我只是禁用了它,文件就被创建了。