Salut à tous,
Je vais essayer d'exposer mon problème le plus clairement possible:
J'ai un fichier qui contient des nombres dont la structure est:
A noter que j'ai choisi ces nombres arbritrairement, pour bien que vous voyiez que chaque nombre est composé de 1 ou 2 chiffres (jamais plus) et est séparé par un espace du nombre voisin.1 0 2 34 1 21
3 12 7 6 13 0
J'aimerais récupérer ces nombres dans un tableau de char à 2 dimensions.
Voici le code que j'ai d'abbord pensé faire:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 int i, j; char table[5][5]; FILE *fichier; fichier=fopen("texte.txt", "r"); for(i=0;i<=4;i++){ for(j=0;j<=4;j++){ fscanf(fichier, "%c", &table[i][j]); printf("table de i: %d et j: %d = %d\n", i, j, (table[i][j]-'0')); } } fclose(fichier);
Mais je me suis vite rendu compte de deux problèmes:
Les espaces et les retours à la ligne étant des char, ils se mettent dans les cases de mon tableau à la place des nombres. Ce problème peut être contourné assez facilement en ignorant le caractère s'ils s'agit d'un espace ou d'un retour à la ligne.
En revanche le deuxième problème qui s'est posé et pour lequel je me tourne vers vous (qui était largement prévisible d'ailleurs) est que comme 31 (par exemple) est composé de 2 caractères, chacun s'enregistre dans une case différente de mon tableau.
Je pense donc qu'il faudrait rajouter une dimension [k] au tableau pour pouvoir enregistrer chaque nombre comme une chaine mais je ne sais pas comment implémenter cette dimension (si c'est la bonne solution).
En esperant que quelqu'un pourra apporter quelques éléments de réponse à mon problème.
Cordialement,
Lyons
Partager