Home > Enterprise >  fwrite() doesn't write the full string
fwrite() doesn't write the full string

Time:01-10

fwrite only writes 8 bytes, The file should contain "Hello, World!" however when I open it, it shows "Hello, W"

FILE* f = fopen("file.txt", "w");
const char* b = "Hello, World!\n";
fwrite(b, sizeof(char), sizeof(b), f);
fclose(f);

I've googled "fwrite doesn't write the full string" but I couldn't find something similar to my problem.

CodePudding user response:

sizeof(b) returns the size of the pointer, not the length of the string. You could use strlen to get it though:

fwrite(b, sizeof(char), strlen(b), f);
// Here ----------------^
  • Related