Nouveau sur les fichiers en C, essayant de lire un fichier via Fread
Voici le contenu du fichier: p> code utilisé: p> char c[6];
fread(c,1,5,f1)
3 Réponses :
Non. La fonction Personnellement, j'irais avec Fread code> lit simplement un certain nombre d'éléments, il n'a aucune notion de "chaînes". P>
fgets code> /
FSCANF code> au lieu de li>
ul>
fgets code>. p>
Pour les personnes intéressées, un exemple de mise en œuvre pour supprimer la nouvelle ligne de Fgets est donné ici: Stackoverflow.com/Questtions/2693776/...
the page man pour Fread ne dit rien de l'ajout d'un zéro à la fin de le fichier. p>
Si vous souhaitez être en sécurité, initiez tous les octets de votre tableau C pour être zéro (via Bzero ou quelque chose comme ça) et lorsque vous lisez dans vous, vous aurez alors une null de terminaison. P>
J'ai lié les deux pages de l'homme pour Fread code> et
bzero code> et j'espère que cela vous aide à sortir. P>
BZERO () CODE>
est obsolète (et a été supprimé de POSIX.1-1-2008) en faveur de < Code> Memset () Code> .
Désolé je suis un peu tard à la fête.
Non, Fread ne gère pas cela pour vous. Cela doit être fait manuellement. Heureusement, ce n'est pas difficile. J'aime utiliser Fread () 'S Retour pour régler la nul comme SO: P>
char buffer[16+1]; /*leaving room for '\0' */ x = fread(buffer, sizeof(char), 16, stream); buffer[x]='\0';
Fread code> ne lit que des octets dans des tampons. Cela ne sait rien de ce que vous appelez une chaîne.