ouverture de fichier

ouverture de fichier - C - Programmation

Marsh Posté le 02-12-2006 à 18:33:31    

Bonjour,
 
   bon j'ai un petit soucis : j'ai besoin d'ouvrir un fichier dans mon programme. Le truc c'est que je connais la méthode fopen() qui fait ça très bien. Mais en fait Visual studio me dit qu'elle est dépréciée. Aussi je cherche sur google, une autre méthode pour faire ça... et je ne trouve pas. Toutes les docs que je trouve n'utilisent que fopen()... Saurriez vous quel est la nouvelle fonction a utiliser ?
 
Merci :)

Reply

Marsh Posté le 02-12-2006 à 18:33:31   

Reply

Marsh Posté le 02-12-2006 à 18:48:37    

Reply

Marsh Posté le 02-12-2006 à 18:54:00    

ben, oui je sais... c'est pour ça ue j'utilise des FILE* et non un fstream. Tu me dit ça au sujet de l'IDE ? pourtant j'ais fait des ".c" et donc visual m'interdit plein de truc du C++ comme les for(int i = 0...) : la déclaration du i dans le for => toutes les déclarations doivent être en début des fonctions. Je croit qu'il est conscient que je fait du C et non du C++

Reply

Marsh Posté le 02-12-2006 à 18:56:44    

for (int i=0...) est parfaitement valide en C...

Reply

Marsh Posté le 02-12-2006 à 18:58:48    

bah là visual il veut pas... Donc si je comprend bien, je continue comme avant et j'utilise fopen()

Reply

Marsh Posté le 02-12-2006 à 19:02:19    

je connais pas visual, mais je trouve assez bizarre qu'il te dise ça, je vois pas trop dans quelle norme fopen a été déprécié, si ce n'est en C++ pour utiliser tout ce qu'il y a dans la stl.
 
(et j'ai été taquin, le for (int i=0..) tu peut en C99 mais pas en C ansi ;) )

Reply

Marsh Posté le 02-12-2006 à 19:04:28    

ok, merci
 
et désolé de n'être qu'un étudiant inculte ;)

Reply

Marsh Posté le 02-12-2006 à 19:37:49    

Salut,
 
MSVC 2005 déclare un joli paquet des fonctions standards comme dépréciées. Ce n'est pas au niveau de la norme que ça l'est donc (enfin, à ma connaissance, donc bon, c'est ptet faux :D).
Il faut donc utiliser fopen_s ou plus génériquement _tfopen_s. Là, t'auras plus de warning, mais t'auras pas la moindre compat avec une ancienne version de VC et aucune compat' avec mingw pour le moment (là encore, c'est pas garanti, mais ça compilait pas chez un pote qui a mingw je.sais.pas.combien)


---------------
.
Reply

Marsh Posté le 02-12-2006 à 21:15:12    

Ok, merci :)
 
je vais essayer ça. Après j'irais voir le problème de compatibilité. L'histoire c'est que j'en ais besoin pour mon projet d'algo (on doit trouver l'algo, puis on l'implémenter en C) et le truc, c'est que le jour où je le rend il doit être compilable avec gcc sous Linux. donc je testerais lundi sur un pc de l'école  
 
merci de ta réponse !

Reply

Marsh Posté le 03-12-2006 à 03:38:53    

Si le but est d'être compilable avec gcc sous linux, essaye de faire un environnement plutôt similaire sous windows ça réduira sûrement les problèmes et les mauvaises-surprises-juste-au-moment-de-rendre-le-projet. (par exemple en compilant avec gcc déjà, il me semble même que tu peut utiliser gcc directement sous Visual Studio si tu y tiens, mais je suppose que tu dois perdre en fonctionnalités de debug)

Reply

Marsh Posté le 03-12-2006 à 03:38:53   

Reply

Marsh Posté le 03-12-2006 à 12:11:57    


Quel vélo ?

 

Visual studio fait du C ou du C++ (question de reglage et d'extension).
Par contre, en mode C, la nouvelle version de Visual Studio prétend, par défaut, défavoriser l'usage des fonctions du C standard (xxx() )au profit des siennes (xxx_s()) présumées plus fiables (s comme safe).

 

http://www.microsoft.com/france/ms [...] urity.mspx

 

C'est possible, est c'est faisable, tout en sachant qu'on perd en portabilité.

 

Cependant il existe une option qui permet de désactiver ce contrôle. Détails ici :

 

http://www.developpez.net/forums/forumdisplay.php?f=29

 

et qui permet donc d'écrire en C standard sans être assailli de milliers de warnings.


Message édité par Emmanuel Delahaye le 03-12-2006 à 12:14:53

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 03-12-2006 à 14:02:48    

ok, merci :) je vais faire ça

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed