Tableau, entrée-sortie, modifications
Lune2mil
-
Crazy Legs Messages postés 777 Statut Membre -
Crazy Legs Messages postés 777 Statut Membre -
Bonjour,
Je suis actuellement sur du code qui me pose (un peu) de problèmes. Mon but est assez simple :
En entrée, j'ai un fichier texte rempli de valeurs entières séparées par des tabulations, et parfois par des Entrées.
En sortie, je voudrais un autre fichier texte, avec les valeurs du fichier entrée sur laquelle on aurait réalisée une petite opération : sortie = a * entrée + b (a et b sont des constantes)
J'ai quelques petits soucis de conversion. J'ai essayé de programmé avec deux techniques, mais aucune n'est satisfaisante :
1- La deuxième me recopie et modifie partiellement le fichier, c'est à dire que j'ai seulement la première valeur de chaque ligne (juste après un Entrée) qui est recopié dans le nouveau fichier et elle est bien modifiée.
2- La première me recopie mon fichier entièrement, mais impossible de toucher aux valeurs (problèmes en les char et les int)
Pouvez-vous m'éclairer un peu ? cela ne semble pas très compliqué, mais je commence à perdre espoir...
Solution 1 :
// Ouverture des deux fichiers
entree = fopen("RI.txt", "r");
sortie = fopen("RI_ok","w");
// Tests sur l'ouverture des deux fichiers
if (entree != NULL && sortie != NULL)
{
while (fgets(chaine, TAILLE_MAX, entree) != NULL)
{
fscanf(entree, "%f", &temp);
temp = temp * rescale_slope + rescale_intercept;
fprintf(sortie, "%f\t", temp);
}
fclose(entree);
fclose(sortie);
}
else
{
printf("Impossible d'ouvrir un des deux fichiers\n");
}
Solution 2 :
if (entree != NULL && sortie != NULL)
{
while (fgets(chaine, TAILLE_MAX, entree) != NULL)
{
longueur_chaine = strlen(chaine);
printf("La longueur de la chaine est : %d\n",longueur_chaine);
for (i=0 ; i <= longueur_chaine ; i++)
{
if (
fscanf(entree, "%f", &temp);
chaine = chaine * rescale_slope + rescale_intercept;
fputs(chaine, sortie);
} // fin du for
} // fin du while
fclose(entree);
fclose(sortie);
}
else
{
printf("Impossible d'ouvrir un des deux fichiers\n");
}
Merci d'avance
Lune2mil
Je suis actuellement sur du code qui me pose (un peu) de problèmes. Mon but est assez simple :
En entrée, j'ai un fichier texte rempli de valeurs entières séparées par des tabulations, et parfois par des Entrées.
En sortie, je voudrais un autre fichier texte, avec les valeurs du fichier entrée sur laquelle on aurait réalisée une petite opération : sortie = a * entrée + b (a et b sont des constantes)
J'ai quelques petits soucis de conversion. J'ai essayé de programmé avec deux techniques, mais aucune n'est satisfaisante :
1- La deuxième me recopie et modifie partiellement le fichier, c'est à dire que j'ai seulement la première valeur de chaque ligne (juste après un Entrée) qui est recopié dans le nouveau fichier et elle est bien modifiée.
2- La première me recopie mon fichier entièrement, mais impossible de toucher aux valeurs (problèmes en les char et les int)
Pouvez-vous m'éclairer un peu ? cela ne semble pas très compliqué, mais je commence à perdre espoir...
Solution 1 :
// Ouverture des deux fichiers
entree = fopen("RI.txt", "r");
sortie = fopen("RI_ok","w");
// Tests sur l'ouverture des deux fichiers
if (entree != NULL && sortie != NULL)
{
while (fgets(chaine, TAILLE_MAX, entree) != NULL)
{
fscanf(entree, "%f", &temp);
temp = temp * rescale_slope + rescale_intercept;
fprintf(sortie, "%f\t", temp);
}
fclose(entree);
fclose(sortie);
}
else
{
printf("Impossible d'ouvrir un des deux fichiers\n");
}
Solution 2 :
if (entree != NULL && sortie != NULL)
{
while (fgets(chaine, TAILLE_MAX, entree) != NULL)
{
longueur_chaine = strlen(chaine);
printf("La longueur de la chaine est : %d\n",longueur_chaine);
for (i=0 ; i <= longueur_chaine ; i++)
{
if (
fscanf(entree, "%f", &temp);
chaine = chaine * rescale_slope + rescale_intercept;
fputs(chaine, sortie);
} // fin du for
} // fin du while
fclose(entree);
fclose(sortie);
}
else
{
printf("Impossible d'ouvrir un des deux fichiers\n");
}
Merci d'avance
Lune2mil
A voir également:
- Tableau, entrée-sortie, modifications
- Suivi des modifications word - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Salut,
Utilise la balise de code pour afficher correctement ton code.
Solution 1 :
Solution 2 :
Aime ton prochain !
Utilise la balise de code pour afficher correctement ton code.
Solution 1 :
// Ouverture des deux fichiers
entree = fopen("RI.txt", "r");
sortie = fopen("RI_ok","w");
// Tests sur l'ouverture des deux fichiers
if(entree != NULL && sortie != NULL)
{
while(fgets(chaine, TAILLE_MAX, entree) != NULL)
{
fscanf(entree, "%f", &temp);
temp = temp * rescale_slope + rescale_intercept;
fprintf(sortie, "%f\t", temp);
}
fclose(entree);
fclose(sortie);
}
else
{
printf("Impossible d'ouvrir un des deux fichiers\n");
}
Solution 2 :
if (entree != NULL && sortie != NULL)
{
while(fgets(chaine, TAILLE_MAX, entree) != NULL)
{
longueur_chaine = strlen(chaine);
printf("La longueur de la chaine est : %d\n",longueur_chaine);
for (i=0 ; i <= longueur_chaine ; i++)
{
if( OUBLIE
fscanf(entree, "%f", &temp);
chaine = chaine * rescale_slope + rescale_intercept;
fputs(chaine, sortie);
}
}
fclose(entree);
fclose(sortie);
}
else
{
printf("Impossible d'ouvrir un des deux fichiers\n");
}
Aime ton prochain !