J'essaie d'obtenir des données d'entrée à partir d'un fichier txt sur Linux/Mint. Ainsi, après avoir compilé le code, j'exécute la commande suivante: ./a.out output.txt Je dois remplir un tableau bidimensionnel mais comme un tableau irrégulier (le nombre de colonnes dans chaque rangée est différent). Donc, je veux le diviser en regardant le caractère ce qui est lu à partir du fichier. Si le caractère est '\ n', je veux remplir la deuxième ligne. Mais je suppose que je ne peux pas lire le caractère '\ n'. J'espère pouvoir expliquer le problème. J'écris le code, peut-être que ce sera plus clair.Comment puis-je obtenir le caractère ' n' du fichier d'entrée?
mon fichier input.txt est:
mon C++ partie de code est pour obtenir l'entrée:
for (int i = 0; i<n; i++) {
char ch;
cin >> ch;
int j = 0;
while (ch != '\n') {
arr[i][j] = ch;
cin >> ch;
j++;
}
}
Je veux que, si le caractère est égal à la « \ n 'alors le programme continue pour remplir le tableau à la rangée suivante.
arr[0][0] = 'a';
arr[0][1] = 'f'
arr[0][2] = 'h'
arr[1][0] = 'b'
arr[1][1] = 'e'
arr[1][2] = 'g'
arr[2][0] = 'c' .......)
[ 'getline'] (http://www.cplusplus.com/reference/istream/istream/getline/) lit jusqu'à la fin d'une ligne – user463035818
Non trop clair ce que vous voulez, mais pourquoi ne pas utiliser std :: get(). –
Je vous recommande fortement d'utiliser 'std :: ifstream' pour entrer des fichiers texte, au lieu de' std :: cin'. Comme il a déjà été commenté, 'getline' est un bon choix pour lire le fichier d'entrée. – EuGENE