Bonjour à tous,
Je rencontre actuellement un problème étrange.
J'ai la fonction suivante:
censée écrire dans un fichier situé dans le même répertoire que le programme. Or, après exécution, il ne se passe absolument rien: le fichier n'est pas créé et s'il existe déjà il n'est pas modifié. Les différentes fonctions fopen, fprintf et fclose s'exécutent correctement si j'en crois leurs valeurs de retour respectives.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void enregistrer_tensions (double*** tensions, struct simulation* simul, int nb_noeuds, TCHAR* pht) { int h, noeud, pas, test; char nom_fichier[TAILLE_SZ] = ""; strcat(nom_fichier, "tensions_"); strcat(nom_fichier, (char*)pht); strcat(nom_fichier, ".har"); FILE * fichier_tensions; fichier_tensions = fopen(nom_fichier, "w"); if (fichier_tensions == NULL) return; fprintf(fichier_tensions, "Simulation: %s\nPHT: %s\n\n", simul->nom, pht); fprintf(fichier_tensions, "Noeud\tPas\tRang\tTension\n"); (...) fclose(fichier_tensions); return; }
Là où je ne comprends pas, c'est que cela fonctionnait parfaitement pendant la phase de test, quand les données d'entrée étaient directement écrites dans le code du programme. Les fonctions qui sont utilisées pour entrer les données, et qui ne l'étaient pas en mode test, sont de simples appels de boites de dialogue et des vérifications élémentaires sur les valeurs entrées par l'utilisateur.
J'ai utilisé CrtCheckmemory pour m'assurer de la bonne gestion du tas et ça n'a pas renvoyé d'erreur.
Une idée ?
Partager