New to files in C, trying to read a file via fread
Here\'s the content of the file:
line1 how
Code used:
char c[6];
Sorry i'm a little late to the party.
No, fread doesn't handle this for you. It must be done manually. Luckily its not hard. I like to use fread()'s return to set the NUL like so:
char buffer[16+1]; /*leaving room for '\0' */
x = fread(buffer, sizeof(char), 16, stream);
buffer[x]='\0';
and now you have yourself a \0 terminated string, and as a bonus, we have a nifty variable x, which actually saves us the trouble of running strlen() if we ever needed it later. neat!
No. The fread
function simply reads a number of elements, it has no notion of "strings".
fgets
/ fscanf
insteadPersonally I would go with fgets
.
The man page for fread says nothing about adding a terminating zero at the end of the file.
If you want to be safe, initialize all the bytes in your c array to be zero (via bzero or something like that) and when you read in, you'll then have a terminating null.
I've linked the two man pages for fread
and bzero
and I hope that helps you out.