Dans mon programme C Cette fonction va gérer tous les travaux d'ouverture d'un fichier spécifique, puis renvoyer le pointeur de fichier, de sorte que les fonctions principales ou autres peuvent lire le contenu à l'aide de FP, mais jusqu'à présent, je n'ai pas pu être capable. Pour que cela fonctionne.
Je vais juste apprendre la langue, il est donc possible que je fais quelque chose de très faux. p>
3 Réponses :
Dans la première ligne, vous avez
return NULL
Parfait, maintenant je suis capable de passer des argendes [1] à la fonction et d'imprimer le contenu de Main. Comme beaucoup d'entre vous disent, je devrais comparer FP à NULL, pourquoi cela?
Sur certaines plates-formes peu communes, NULL peut ne pas être 0. Ce n'est pas vrai en C ++ ou la plupart des endroits en pratique.
Un fichier * open_text_file (); code> doit être le prototype. p>
int code> n'est pas un fichier * code>. p>
La fonction est un peu inutile, car tout ce qu'il fait est ce que fopen () fait, plus le message d'erreur. Ce n'est pas un bon design, car la branche d'erreur doit également renvoyer un pointeur (probablement NULL), qui doit ensuite être testé à nouveau dans le code d'appel. Mieux serait simplement de dire:
Vous essayez de renvoyer un pointeur à un fichier
code> structure sous forme d'unint code>. Qu'est-ce qui (en plus de cette erreur) voyez-vous?En tant que problème de style de codage, vous devez comparer
FP code> contrenull code> au lieu de0 code>. Si vous pourriez également être plus clair pour séparer l'affectation et la comparaison deFP code> dans des déclarations distinctes.