Forum Programmation.c Affichage des données dans une position bien défini

Posté par  .
Étiquettes : aucune
0
5
août
2007
Est ce qu'il y a un moyen en C pour faire afficher les données dans une position bien défini dans la ligne d'un fichier :

Exemple :

Taille de la ligne dans le fichier = 265 Caractères

Les valeurs a afficher dans le output :


Valeur1 = "Bonjour";
Valeur2 = "Tous";
Valeur3 = "le monde ";
Valeur4 = " ! " ;


Les positions des valeurs :


Valeur1 : a afficher dans la ligne du fichier a la position : 50
Valeur2 : a afficher dans la ligne du fichier a la position : 100
Valeur3 : a afficher dans la ligne du fichier a la position : 150
Valeur4 : a afficher dans la ligne du fichier a la position : 200


Merci d'avance
  • # Pas clair ...

    Posté par  . Évalué à 4.

    Si c'est en sortie, tu peux faire :



    #include <stdio.h>
    #include <string.h>

    int main (void)
    {
    char buffer[256];

    const char * valeur1 = "Bonjour";
    const char * valeur2 = "tout";
    const char * valeur3 = "le monde";
    const char * valeur4 = "!";

    memset (buffer,' ',256);
    strcpy (buffer+ 50,valeur1);
    strcpy (buffer+100,valeur2);
    strcpy (buffer+150,valeur3);
    strcpy (buffer+200,valeur4);

    buffer [strlen(valeur4)+200] = '\0';

    puts (buffer);

    return 0;
    }
  • # Printf

    Posté par  . Évalué à 2.

    printf("%50s%50s%50s%50s%50s","",valeur1,valeur2,valeur3,valeur4);
    Si on decompose, on affiche 4 chaines avec une largeur de 50 caractere. La chaine se tronquée ou completée avec des espaces.
    Les 4 chaines sont une chaines vides pour créer les 50 premiers espaces, puis les 4 valeur.

    Tu peux aller voir http://membres.lycos.fr/dancel/c/c60_10.htm pour plus d'informations.
    • [^] # Re: Printf

      Posté par  . Évalué à 1.

      avec :

      printf("%50s%50s%50s%50s%50s","",valeur1,valeur2,valeur3,valeur4);


      il y a un chevauchement dans l'affichage !
      • [^] # Re: Printf

        Posté par  . Évalué à 3.

        Effectivement, sa passe mieux ave printf("%-50s%-50s..."...)

        Sinon, la premiere solution avec le tableau doit donner le bon resultat non ?
  • # Orthographe

    Posté par  . Évalué à -1.

    Bonjour tout le monde !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.