Affichage en console d'un fichier

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut à tous,

Contexte

Je cherche à afficher dans une console le contenu d'un fichier, vous trouverez à la fin de ce message le source.

J'utilise l'IDE CLion et la console qu'il comporte.

Problème

Quand je l'exécute, la chaîne "MZE" s'affiche, suivie d'une quantité importante de caractères bizarres (des coeurs, des losanges, et d'autres), puis "This program cannot be run in DOS mode.", et de nouveaux caractères bizarres, en grande quantité également (une soixantaine de lignes a priori).

Savez-vous ce qui cloche ? Merci d'avance !

Code-source

Code qui affiche dans la console le contenu de chaque fichier, dont le chemin absolu est passé en paramètre à la commande d'exécution de ce programme.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 int i = 0;
    for(i; i < argc; i++) {
        FILE* file =  fopen(argv[i], "r");

        int char_read = 0;
        do {
            char_read = fgetc(file);
            printf("%c", char_read);
        } while(char_read != EOF);

        fclose(file);

    }

Édité par The-Aloha-Protocol

Université de Bretagne-Sud <3

+0 -0
Auteur du sujet

Non mais si j'ai le main, bien entendu :) .

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>

using namespace std;

int main(int argc, char* argv[]) {

    printf("TP 0 - Les processus Unix : Les appels-systemes fork, wait, exit, et exec...\n");
    printf("1 - Multif\n\n");

    int i = 0;
    for(i; i < argc; i++) {
        FILE* file =  fopen(argv[i], "r");

        int char_read = 0;
        do {
            char_read = fgetc(file);
            printf("%c", char_read);
        } while(char_read != EOF);

        fclose(file);

    }

    return 0;
}

Édité par The-Aloha-Protocol

Université de Bretagne-Sud <3

+0 -0

Peut-être un problème d'encodage des caractères ? Genre le fichier en UTF-8 et le programme qui essaye de lire du latin-1 ou latin-9 ?

Médicament flemmard aux pul(p)sions imprécises. “Don’t wait for the perfect moment. Take the moment and make it perfect.”

+0 -0
Auteur du sujet

Merci à vous tous, en effet j'ai résolu le problème en débutant la boucle à 1, le pire c'est que je savais déjà qu'argv[0] contenait le nom de l'exe, mais je n'y ai pas pensé…

Université de Bretagne-Sud <3

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte