Aide declaration en C

Fermé
mator - 10 juin 2007 à 15:08
mamiemando Messages postés 33654 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2025 - 10 juin 2007 à 20:15
Bonjour, voici le debut de mon programme.Quand je le lance il m'affiche le 1er point d 'interrogation sur la console, j 'inscris 1600 et il affiche le 2eme point d 'interrogation et la dès que je rentre un chiffre le chiffre ne s 'affiche pas et plus rien.
Pouvez-vous me dire ce qui ne va pas dans mes declarations?
Merci
___________
# include <stdio.h>
main ()
{
FILE *barcd;
FILE *forve;
char possib9[10];
char tout[10];


unsigned long tab[1700][10],zab[1700][1];
unsigned short ca[10],xab[2][10];
unsigned long y,i;
unsigned short j,k,a,r,s,t,v,b,c,d,e,f,g,h,l,m;

barcd = fopen ("possib9","w");
forve= fopen ("tout","r");
scanf("%lu",&y);
for(i=0;i<y;i++) {
for(j=0;j<10;j++) {
fscanf(forve,"%lu",&tab[i][j]);
}
}

scanf("%hu %hu %hu %hu %hu",&a,&r,&s,&t,&v);

2 réponses

dubcek Messages postés 18784 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 avril 2025 5 630
10 juin 2007 à 15:35
s
0
mamiemando Messages postés 33654 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2025 7 846
10 juin 2007 à 20:15
C'est impossible que ça compile ça ! Ou alors tu as un compilateur en carton pâte.
Que cherches-tu à faire ?

1) un main retourne un int (le code d'exécution, 0 si tout va bien)
2) tout fopen ouvre un fichier et si celui-ci est ouvert avec succès, doit être fermé avec la commande fclose
#include <stdio.h>
#include <stdlib.h>

typedef int value_t; // Le type des valeurs stockées dans la matrice

int main(int argc,char **argv){
    // Declarer les variables
    char *filename;
    FILE *fp;
    unsigned nb_row,nb_col,i,j;
    value_t **matrix;

    // Controler les arguments
    if(argc!=4){
        fprintf(stderr,"usage: %s filename nb_row nb_column\n",argv[0]);
        fprintf(stderr,"lit une matrice dans un fichier de taille nb_row,nb_column\n");
        return 1;
    }

    // Convertir les parametres
    filename = argv[1];
    nb_row = atoi(argv[2]);
    nb_col = atoi(argv[3]);
    if(!( fp = fopen(filename,"r") )){
        fprintf(stderr,"can't open %s\n",filename);
        return 2;
    }
    printf("filename = %s\n",filename);
    printf("nb_row = %d\n",nb_row);
    printf("nb_col = %d\n",nb_col);

    // Allouer la matrice
    matrix = (value_t **)malloc(sizeof(value_t *)*nb_row);
    for(i=0;i<nb_row;++i) matrix[i] = (value_t *)calloc(sizeof(value_t),nb_col);

    // Lire le fichier
    for(i=0;i<nb_row;++i){
        for(j=0;j<nb_col;++j){
            fscanf(fp,"%d",&matrix[i][j]);
        }
    }

    // Afficher la matrice lue
    printf("Resultat:\n");
    for(i=0;i<nb_row;++i){
        for(j=0;j<nb_col;++j){
            printf("%d\t",matrix[i][j]);
        }
        printf("\n");
    }

    // Quitter proprement
    for(i=0;i<nb_row;++i) free(matrix[i]);
    free(matrix);
    fclose(fp);
    return 0;
}

Ce qui donne :
(mando@aldur) (~) $ cat plop.txt
1       2       3       4
5       6       7       8
9       10      11      12
(mando@aldur) (~) $ gcc -W -Wall plop.c
(mando@aldur) (~) $ ./a.out plop.txt 3 4
filename = plop.txt
nb_row = 3
nb_col = 4
Resultat:
1       2       3       4
5       6       7       8
9       10      11      12

Bonne chance
0