fopen()在C语言中不起作用

xytpbqjk  于 2022-12-11  发布在  其他
关注(0)|答案(6)|浏览(237)

我修好了。谢谢你的帮助。
我现在已经浏览了不少文章,论坛帖子和主题在这里;然而,没有一个真正解决了我的问题。问题是我的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()

zzlelutf

zzlelutf1#

唯一有意义的解释是您没有在工作目录中创建文件的权限,或者工作目录不是您要查找要创建的文件的位置。
fopen()不工作
当然,它是有效的。你不应该有标准库不起作用的想法。
没有警告/通知或其他东西给予我任何想法是什么错误。
调用fopen()后未检查错误。如果不检查错误,如何将错误发送给您?

mxg2im7a

mxg2im7a2#

尝试perror。可能您没有权限或类似的问题。

FILE *receipt = fopen("receipt.txt", "w");
if (!receipt)
    perror("fopen");
zvokhttg

zvokhttg3#

文件已创建,但未在预期位置创建。
检查工作目录(getcwd)。

carvr3hs

carvr3hs4#

我有同样的问题。我使用VSC编码,我尝试了相同的代码作为你的,它也不工作。所以,我读到的其他问题,大多数的防病毒软件都阻止VSC。禁用我的avast防病毒后,问题已经解决。

tct7dpnv

tct7dpnv5#

您应该使用strerror自行格式化错误,或使用perror打印与errno匹配的系统错误。
man errno可以帮助您

nwlqm0z1

nwlqm0z16#

在我的例子中,防病毒程序阻止代码创建文件,我只是禁用了它,文件就被创建了。

相关问题