Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > API graphiques > SDL
SDL Forum d'entraide sur l'API SDL. Avant de poster -> FAQ SDL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/07/2012, 16h55   #1
limprid
Candidat au titre de Membre du Club
 
Homme quentin rausch
Étudiant
Inscription : juin 2012
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme quentin rausch
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Santé

Informations forums :
Inscription : juin 2012
Messages : 22
Points : 10
Points : 10
Par défaut Ouvrir un nouveau fichier lors du même Event

Bonjour à tous,

j'ai crée une interface graphique qui affiche les données provenant d'une carte.
Ce que je souhaiterais faire à présent est lorsque j'appuie sur une touche, le programme il m'enregistre un fichier "data_1.txt" et si j'appuis de nouveau sur la même touche il m'enregistre un fichier "data_2.txt" etc..

Mon événement est de la sorte:
Code :
1
2
3
4
5
6
7
8
int x = 1;
 
if (Press key)
{
x++;
Save_Data (&x);
Print_Signal();
}
avec
Code :
1
2
3
4
5
6
7
8
9
Save_Data(int *x)
{
FILE *fpdata;
char  nom[25];
sprintf(nom, "%d", x);
fpdata = fopen("nom.txt","w"); //
for (i =0 ; i< MAX ; i++) fprintf(fpdata, "%f", result[i]);
fclose(fpdata);
}
Il doit y avoir une astuce, mais je ne l'ai pas encore trouvée, c'est la raison pour laquelle je me tourne vers vous.

Merci
limprid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2012, 19h48   #2
Anything
Membre habitué
 
Inscription : avril 2011
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 51
Points : 113
Points : 113
1. tu utilise la chaine en dure "nom.txt" plutot que ta variable nom.

2. sprintf(nom, "%d", x); devrait plutot être sprintf(nom, "data_%d.txt", x);
Actuellement nom contient juste la valeur de x sous forme chaine.

3. c'est plus accéssoire mais x n'a pas besoin d'être passer par pointeur. Tu ne modife pas x dans Save_Data et x est un bête int pas une grosse structure qui pourrait nécéssiter d'être passer par adresse.

Bon je m'excuse pour tout ce que j'aurais pu louper ça bien longtemps que je n'ai plus fait de C.
Anything est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/07/2012, 11h28   #3
limprid
Candidat au titre de Membre du Club
 
Homme quentin rausch
Étudiant
Inscription : juin 2012
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme quentin rausch
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Santé

Informations forums :
Inscription : juin 2012
Messages : 22
Points : 10
Points : 10
bonjour, alors j'ai modifié le code comme vous m'avez indiqué.

Code :
1
2
3
4
5
6
7
8
9
 
int x = 1;
 
if (Press key)
{
Sava_Data (x)
PrintSignal();
x++;
}

Code :
1
2
3
4
5
6
7
8
9
10
 
Sava_Data(int x)
{
  FILE  * fpdata;
  char nom[20];
  sprintf(nom, "data_%d.txt", x);
  fpdata = fopen(nom, "w");
  for ()..
  fclose(fpdata);
}

et cela fonctionne très bien, merci beaucoup et bonne journée.
limprid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h47.


 
 
 
 
Partenaires

Hébergement Web