semnos21
Messages postés2Date d'inscriptionmercredi 25 juillet 2007StatutMembreDernière intervention 7 août 2007
-
3 août 2007 à 21:17
semnos21
Messages postés2Date d'inscriptionmercredi 25 juillet 2007StatutMembreDernière intervention 7 août 2007
-
7 août 2007 à 16:14
Bonjour,
poru certain d'entre vous ce que je vais demander va paraitre simple, ca tombe bien, j'en ai marre de me casser les dents et de perdre du temps la dessus... ---> codage en C
(dsl il n'y aura pas d'accent.. cause:qwerty de .....)
<hr size="2" width="100%" />
1.0 0.987 -12.7 6.651 169.6 0.019 81.2 0.504 -9.6
2.0 0.972 -25.2 6.514 160.5 0.038 73.7 0.497 -19.6
3.0 0.954 -38.0 6.378 151.5 0.054 66.6 0.482 -30.0
24.0 0.783 141.4 2.060 21.1 0.132 -31.2 0.294 145.9
25.0 0.787 139.2 1.965 17.3 0.133 -32.9 0.300 140.6
31.0 0.755 126.3 1.655 -3.9 0.130 -45.6 0.362 121.5
<hr size="2" width="100%" />voila le fichier en cause, maintenant je vous explique:
Je doit recuperer ces donnees dans un tableau de structure, c'est ce qui me semblais le mieu convenir, avec pour chaque ligne la frequence(1er colone), et par groupe de deux des valeurs (amplitude et angle pour les quatres cases d'une matrice...).
Si jusque la vous avez suivi j'ai une chance...
voici la structure
<hr size="2" width="100%" />typedef struct S_mat
{
double freq;
double S_ang[4];
double S_amp[4];
} S_mat;
<hr size="2" width="100%" />
voici mon bout de code foireux, enfin qui tourne daans une boucle qui me place au debut de chaque ligne...
<hr size="2" width="100%" />fscanf(fichier,"%f%f%f%f%f%f%f%f%f", &tableau_S[i].freq, &tableau_S[i].S_amp[0], &tableau_S[i].S_ang[0], &tableau_S[i].S_amp[1], &tableau_S[i].S_ang[1], &tableau_S[i].S_amp[2], &tableau_S[i].S_ang[2], &tableau_S[i].S_amp[3], &tableau_S[i].S_ang[3]);
printf("Frequence:%2.2f S11: %4.4f , %4.4f S12: %4.4f , %4.4f S21: %4.4f , %4.4f S22: %4.4f , %4.4f \n",tableau_S[i].freq,tableau_S[i].S_amp[0],tableau_S[i].S_ang[0],tableau_S[i].S_amp[1],tableau_S[i].S_ang[1],tableau_S[i].S_amp[2],tableau_S[i].S_ang[2],tableau_S[i].S_amp[3],tableau_S[i].S_ang[3]);
<hr size="2" width="100%" />Sur ce coup ci game over, pas de probleme, je em suis dit que j'avais ete un peu barbar...deuxieme essai plus soft: la aussi... banzai les valeurs de l'espace...
<hr size="2" width="100%" /> fscanf(fichier,"%f",&(tableau_S[i].freq));
fscanf(fichier," %f",&(tableau_S[i].S_amp[0]));
fscanf(fichier," %f",&(tableau_S[i].S_ang[0]));
fscanf(fichier," %f",&(tableau_S[i].S_amp[1]));
fscanf(fichier," %f",&(tableau_S[i].S_ang[1]));
fscanf(fichier," %f",&(tableau_S[i].S_amp[2]));
fscanf(fichier," %f",&(tableau_S[i].S_ang[2]));
fscanf(fichier," %f",&(tableau_S[i].S_amp[3]));
fscanf(fichier," %f",&(tableau_S[i].S_ang[3]));
<hr size="2" width="100%" />
Dernier recours... HEEELLLPPPP ...
J'ai du foirer la fonction scanf possible, mais tout ce que j'ai trouve dessus est un poil confu...
Ensuite utiliser de fgetc ou fgets... je trouvais ca aleatoire vu que les tailles de chaines sont a +-1 pres et que les gentils caractere genre '.' et '-' faut les gerer au cas par cas.... moi je me suis dit que ca me prendrais une semaine.. ca tombe mal me reste a peu pres moitie moins...
Voilou le probleme, je verifie que je n'ai pas laisse de variable ou autre obscure...
Ah si le 'i' qui se promene est incremente a chaque iteration de la boucle qui me place en debut de ligne (c'est une verification car il y a des lignes de texte dans le fichier dont je me tape royal.)
Sur ce, si quelqu'un a une solution ^^ amen, sinon, bah je suis pas dans le petrin moi...
Merci
Semnos21
(paul.g1987@gmail.com si c plus simple pour certain)
PS: si il y a deja je n'ai pas trouve ma reponse dsl
Cyr62110
Messages postés65Date d'inscriptionvendredi 10 février 2006StatutMembreDernière intervention21 octobre 2009 6 août 2007 à 09:47
Désolé pour toi mais je libére la mémoire :
current_var++;
free(pcbuf);
et ensuite je vérifie à quelle variable je suis arrivé, si c'est la troisieme j'incrémente current_boucle.
Et si current_boucle est arrivé au maximum, je casse la boucle.
Donc il n'y as pas besoin de remettre un free();.
Bye.
P.S:Je préfére cette methode car peut importe le séparateur des variable, on peut toujours adapter la methode rapidement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
semnos21
Messages postés2Date d'inscriptionmercredi 25 juillet 2007StatutMembreDernière intervention 7 août 2007 7 août 2007 à 16:14
Bon bah merci, il semblerai que l'utilisation du %lf a la place des %f suffise, je vais pousser quelques tests, voir si y'a pas de chausse trappe mais ca semble fonctionner... chui blase d'etre reste coince la dessusm, mais Merci a tous