Bonjour à tous !
J'ai un petit problème dans mon programme, assez facile à résoudre, mais je ne comprends pas pourquoi !
Il est composé de plusieurs fonctions. Hier, j'ai ajouté la prise en charge des arguments ( int main(int argc, char *argv[]) au lieu de int main(); )
Or, pour tester la boucle d'affichage des arguments, j'ai fait un petit programme à part :
Dev c++ indique une erreur sur getch();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> int main(int argc, char *argv[]) { int i; for (i=0; i < argc; i++) { printf("Argument %i : %s \n", i, argv[i]); } getch(); return 0; }
après plusieurs recherches, j'ai vu qu'il fallait inclure <conio.h>
Effectivement, ça fonctionne à merveille !
Cependant, dans mon gros programme initial qui utilise et abuse du getch(), il n'y a pas de <conio.h>, pourtant, il fonctionne aussi !
Je me dis : peut être que getch() est aussi définie dans un autre header...
Mais quand je copie tous les INCLUDES du gros vers le petit programme (stdlib.h stdio.h math.h io.h fcntl.h string.h), même problème, Dev écrit un truc du genre 'undeclared'.
Je n'ai pas rédigé d'autre fonction getch() dans mon programme, alors, est-ce un bug du compilateur ? Dans un gros programme, est-ce qu'une déclaration peut être implicite ? Bref, qu'est ce qui explique cette incohérence ?!
Mon second problème vient d'une fonction du programme.
En gros, j'ai construit une structure Fichier, comprenant le chemin et le nom du fichier, ainsi qu'une fonction qui prend en paramètre cette structure (1) et une chaîne de caractères.
Elle crée un fichier, l'ouvre (en binaire) et écrit la chaîne dedans.
Avant, on saisissait toutes les informations du fichier dans une fonction de saisie, on appelle (1), et ça fonctionnait à merveille!
Maintenant, je construit un fichier avec les arguments de main (après bien entendu un bricolage et une extraction des chaînes de caractères), l'affichage du nom, prénom est correct, mais la fonction crée un fichier en lecture seule !, donc le programme plante sur ma fonction d'écriture !!
Pourquoi ya a t-il une différence de traitement de cette fonction alors qu'à priori le fonctionnement est similaire ???
Je tourne vraiment en rond et ça devient presque lourd !
Est-ce que quelqu'un peut m'aider ????????????????
Merci d'avance !!!
Partager