J'essaie de copier un fichier à partir d'une bibliothèque spécifiée dans le répertoire actuel. Je peux copier parfaitement les fichiers texte. Tous les autres fichiers deviennent corrompus. Le programme détecte une FEOF avant son entrée.
3 Réponses :
Vous devez spécifier l'option sans elle, le fichier est ouvert dans le texte ( "b" code> à
fopen code>:
"T" mode code>), et il en résulte la traduction de caractères de bout en ligne. P> p>
Vous devez ouvrir les fichiers au format binaire plutôt que le format de texte. Dans vos appels vers fopen code>, utilisez
"rb" code> et
"wb" code> plutôt que
"r" code> " > "W" code> respectivement. p>
Êtes-vous sur une machine à Windows? Essayez d'ajouter "B" aux chaînes de mode dans les appels vers de l'homme fopen (3): p>
fopen code>. P>
La chaîne de mode peut également inclure la lettre 'B' en tant que dernier caractère ou en tant que caractère entre les caractères de l'une des cordes de deux caractères décrites ci-dessus. Ceci est strictement pour la compatibilité avec C89 et n'a aucun effet; Le 'B' est ignoré sur tous les systèmes confortables POSIX, y compris Linux. (D'autres systèmes peuvent traiter des fichiers texte et binaires
les fichiers différemment et ajouter le 'B' peut être une bonne idée si vous faites des E / S
à un fichier binaire et s'attendre à ce que votre programme puisse être porté à des non-différents
environnements.) blockquote>