Je suis extrêmement novice en C++ (c'est en fait le premier programme sur lequel j'ai travaillé) et je dois l'apprendre à mesure que j'écris ce programme. Je suis coincé. Le programme est censé lire dans un fichier texte, le charger dans un tableau et assigner un caractère à chaque nombre dans le tableau (donc pour cela je pense que je vais créer 2 tableaux, un tableau int avec les nombres lus dans le fichier, et un tableau char avec les caractères assignés aux nombres). Il imprimera ensuite ces deux tableaux. Il est alors supposé passer par le tableau int initial et rechercher des nombres dont les valeurs diffèrent de leurs valeurs voisines de plus d'un, si une telle valeur est trouvée, il est supposé donner au nombre la valeur de la moyenne de ses valeurs voisines. Il est supposé effectuer toutes ces corrections, puis affecter des caractères à ces nombres corrigés et imprimer les deux tableaux. Je ne sais pas vraiment comment faire tout cela, mais je vais essayer de réduire ma question à mon problème initial. Je n'ai aucune idée comment charger le tableau à partir du fichier. Mon manuel semble faire un bon travail de couverture des tableaux et des fichiers, mais il ne les rassemble pas vraiment et parle de construire des tableaux à partir de fichiers.Chargement d'éléments d'un fichier dans un tableau 2D en C++
Voici à quoi ressemble le fichier, le premier nombre est la taille du tableau.
10
7 6 9 4 5 4 3 2 1 0
6 5 5 5 6 5 4 3 2 1
6 5 6 6 7 6 8 4 3 2
1 5 6 7 7 7 6 5 4 3
5 5 6 7 6 7 7 6 5 9
5 6 7 6 5 6 6 5 4 3
5 6 7 9 5 5 6 5 4 3
5 5 6 7 6 6 7 6 5 4
5 9 5 6 7 6 5 0 3 2
5 5 5 5 6 5 4 3 2 7
Et voici ce code que j'ai jusqu'à présent, bien que la grande majorité de celui-ci traite d'ouvrir le fichier. Je suppose qu'il fait au moins correctement, car lorsque je l'exécute, je ne reçois pas le message "Impossible d'ouvrir l'erreur de fichier".
#include <iostream>
#include <fstream>
#include <array>
int main() { // Main will be in prog1_test
//Open file
ifstream prog1File("prog1.dat", ios::in);
//If file can't be opened, exit
if (!prog1File) {
cerr << "File could not be opened" << end;
exit(EXIT_FAILURE);
}
int size;
int numArray[][];
}
Alors que j'ai la taille et les variables tableau déclaré, je ne sais pas si cela est fait correctement, comme je l'ai dit que je suis encore très nouveau à cela. Je connais quelques bases de Java, mais j'ai du mal à comprendre comment les choses se transforment en C++. Toutes les suggestions sont grandement appréciées.
ofstream est utilisé pour ouvrir les fichiers pour l'écriture, ne devrait pas vous utiliser un ifstream au lieu si vous wan't à lire de lui? – Bedford
Ah ok, je vais corriger cela. Comme je l'ai dit, j'apprends comme je vais :-) –
Aussi en C++ cela ne fonctionne pas: int numArray [] []; Cela fonctionne en Java, mais vous ne pouvez pas utiliser un tableau dynamique comme ça en C/C++. Vous devez soit spécifier la taille exacte lorsque vous le déclarez, soit utiliser un pointeur. – Bedford