Lecture de fichiers passés comme arguments de ligne de commande

Je suis en train d'analyser un fichier texte, mais jusqu'à présent, mon programme ne semble pas être lu correctement.

#include <stdio.h>


int main(int argc, char *argv[])
{
    FILE *fr; //file pointer
    int buildingFloors = 1;

    printf("sanity check\n");  

    fr = fopen (argv[0], "r");
    fscanf(fr, "%d", &buildingFloors );

    printf("%d\n", buildingFloors);

    fclose(fr);

    return 0;
}

J'ai compiler le programme et l'exécuter sur ma redhat linux de la machine avec la commande suivante:

./sjf file.text

fichier.le texte est un document texte avec un "4" comme premier caractère. Donc je m'attends à ma sortie de la

sanity check
4

Cependant, lorsque je lance mon programme, j'ai plutôt obtenir

sanity check
1

Qui implique que fscanf n'avait pas bien lu le premier caractère -- 4. J'ai un erreur de syntaxe qui empêche l'attend fonctionnalité de code? Suis-je censé scanf pour un personnage, et puis convertir un int en quelque sorte?

OriginalL'auteur Raven Dreamer | 2011-02-25