Dennis Dennis - 1 year ago 45
C Question

fopen() not working in C

I got it fixed. Thanks for all the help.

I've now looked through quite a few articles, forum posts and topics here; however, none have actually fixed my issue. The problem is that my

fopen("file.txt", "w");
doesn't create the file.

Code:

//
//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;
}


I've tried throwing in

if(!receipt) {
printf("Error!");
}
else {
fprintf(blabla);
}


But to no avail.

It simply does not create the file :/ Running in Xcode and on Mac. No warnings/notices or otherwise stuff to give me any idea of what is wrong.

*I tried adding
system("pwd")
to figure out if it didn't save it where it should save it, but I have a hard time actually finding that directory (I don't know if it's temp, but even so the file should be there?). Obviously I wasn't questioning the actual validity of the library, duh, implicit that it was the
fopen
I was using not giving me what I expected?

I can't make perror give me any useful information. Everything would appear to work as it should; I just don't get a file. Please avoid any more smartass comments, if you don't want to help just don't write.*

Also, I removed all code, but the actual
fopen()
and
fprintf()
.

Answer Source

Try perror. It's possible you don't have permissions or something like that.

FILE *receipt = fopen("receipt.txt", "w");
if (!receipt)
    perror("fopen");
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download