0
votes

Comment afficher correctement la sortie de fichier édité?

J'essaie de créer un générateur / éditeur de caractères et je voulais faire une liste de tous les caractères déjà enregistrés apparaissent sur l'écran de la console.

J'ai réussi à obtenir la liste de travail, mais il y a un léger problème avec la sortie . P>

Choose character to edit:
1) some random name
2) another random name


1 commentaires

Avez-vous pensé à boucler avec fgets pour lire des lignes complètes dans le fichier au lieu de rechercher une nouvelle ligne?


3 Réponses :


0
votes

Une nouvelle ligne termine la ligne actuelle et cela ne signifie pas que d'autres personnages suivront. Donc, vous obtenez le "vide" 3) code> car il n'y a plus de caractère à lire après la dernière nouvelle ligne. Je voudrais donc introduire une variable qui indique si le compteur % d) code> doit être imprimé dans l'exécution suivant em> (c'est-à-dire seulement si d'autres caractères suivent):

        int beginOfNewLine = 1;
        while((c=getc(f)) != EOF){
            if (beginOfNewLine) {
                printf("%d) ", ++i);
                beginOfNewLine = 0;
            }
            if(c=='\n'){
                beginOfNewLine = 1;  // trigger to print the counter in the next run
            }
            putchar(c);
        }


0 commentaires

0
votes

Comment puis-je supprimer le dernier point pour qu'il [n'écrire pas une dernière ligne vide]? P>

    bool emptyline = true;
    while ((c = getc(f)) != EOF) {
        if (emptyline) {
            printf("%d) ", ++i);
            emptyline = false;
        }
        putchar(c);
        if (c == '\n') emptyline = true;
    }

0 commentaires

0
votes

meilleur serait d'utiliser ce magnifique nom de caractère [50] de la tienne;)

Stockez le nom jusqu'à ce que vous trouviez le '\ N', puis l'afficher. De cette façon, vous pourrez vérifier les erreurs avant d'afficher l'index: D


0 commentaires