fopen()不在C中工作
我修好了。 谢谢你的帮助。
我现在看了很多文章,论坛post和主题; 然而,没有人真正解决我的问题。 问题是我的fopen("file.txt", "w");
不创建文件。
码:
// //Includes #include 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")
以确定它是否没有保存它应该保存的地方,但我很难找到该目录(我不知道它是否是临时的,但即便如此文件应该在那里?)。 显然,我并没有质疑图书馆的实际有效性,呃,暗示我用的是我不能给我的预期吗?
我不能让我发现任何有用的信息。 一切似乎都应该起作用; 我只是没有得到一个文件。 如果你不想帮忙就不写,请不要再做任何smartass评论了。*
另外,我删除了所有代码,但实际的fopen()
和fprintf()
。
试试perror
。 您可能没有权限或类似的东西。
FILE *receipt = fopen("receipt.txt", "w"); if (!receipt) perror("fopen");
唯一有意义的解释是您没有权限在工作目录中创建文件,或者工作目录不在您要查找要创建的文件的位置。
fopen()
不工作
嗯,当然有效。 您不应该认为标准库不起作用。
没有警告/通知或其他东西让我知道什么是错的。
调用fopen()
后没有检查错误。 如果您没有检查错误,您希望如何将它们交付给您?
文件已创建,但不是您期望的文件。
检查工作目录( getcwd
)。
您应该使用strerror
格式化错误或perror
以打印与errno匹配的系统错误。
man errno
可能会帮助你