Comment imprimer des Tableaux 2D en C++?
Je suis en train d'imprimer un fichier texte sur l'écran à l'aide de tableaux, mais je ne suis pas sûr de savoir pourquoi il n'apparaît pas de la façon dont il est dans le fichier texte.
Le fichier texte:
1 2 3 4
5 6 7 8
Affiché sur l'écran comme suit après l'application de jeter fonction:
1
2
3
4
5
6
7
8
Le code:
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string>
using namespace std;
const int MAX_SIZE = 20;
const int TOTAL_AID = 4;
void discard_line(ifstream &in);
void print(int print[][4] , int size);
int main()
{
//string evnt_id[MAX_SIZE]; //stores event id
int athlete_id[MAX_SIZE][TOTAL_AID]; //stores columns for athelete id
int total_records;
char c;
ifstream reg;
reg.open("C:\\result.txt");
discard_line(reg);
total_records = 0;
while( !reg.eof() )
{
for (int i = 0; i < TOTAL_AID; i++)
{
reg >> athlete_id[total_records][i] ;//read aid coloumns
}
total_records++;
reg.get(c);
}
reg.close();
print(athlete_id, total_records);
system("pause");
return 0;
}
void discard_line(ifstream &in)
{
char c;
do
in.get(c);
while (c!='\n');
}
void print(int print[][4] , int size)
{
cout << " \tID \t AID " << endl;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < TOTAL_AID; j++)
{
cout << print[i][j] << endl;
}
}
}
Im nouveau à cela, par conséquent, la mise en page de mon fichier texte et la sortie ne s'affichent pas correctement dans ma question. Le fichier texte est dans la colonne format et la sortie iam arriver après la compilation est verticle. J'espère iam sens.
Je ne vois pas de question. Que voulez-vous la sortie de l'air?
La sortie devrait ressembler exactement le fichier texte, mais pour une raison quelconque, il apparaît verticalement sur l'écran. Est-il quelque chose de mal avec mon code. Si donc s'il vous plaît si quelqu'un peut m'aider à la corriger.
J'ai utilisé votre code de le compiler et de le vérifier, et ma sortie imprimée 5,6,7,8 pas 1,2,3,4,5,6,7,8
le "endl" de caractère sur votre cout d'appel imprime un caractère de saut de ligne... essayez -> cout << print[i][j]; et de préciser l'endroit où les retours à la ligne devrait baisser.
Je ne vois pas de question. Que voulez-vous la sortie de l'air?
La sortie devrait ressembler exactement le fichier texte, mais pour une raison quelconque, il apparaît verticalement sur l'écran. Est-il quelque chose de mal avec mon code. Si donc s'il vous plaît si quelqu'un peut m'aider à la corriger.
J'ai utilisé votre code de le compiler et de le vérifier, et ma sortie imprimée 5,6,7,8 pas 1,2,3,4,5,6,7,8
le "endl" de caractère sur votre cout d'appel imprime un caractère de saut de ligne... essayez -> cout << print[i][j]; et de préciser l'endroit où les retours à la ligne devrait baisser.
OriginalL'auteur Nick | 2012-09-07
Vous devez vous connecter pour publier un commentaire.
L'impression de
std::endl
après chaque numéro. Si vous voulez avoir 1 ligne par ligne, alors vous devez imprimerstd::endl
après chaque ligne. Exemple:Notez aussi que l'écriture
using namespace std;
au début de vos fichiers est considéré comme une mauvaise pratique, car il fait partie de nom défini par l'utilisateur (de types, fonctions, etc.) pour devenir ambiguë. Si vous voulez éviter d'épuiser les préfixant avecstd::
, utilisezusing namespace std;
dans de petites étendues de sorte que d'autres fonctions et d'autres fichiers ne sont pas affectés."using namespace std" est pas si mal quand utilisé dans les fichiers cpp contrairement aux en-têtes.
OriginalL'auteur LihO
Ce n'est pas seulement d'erreur que vous manquez le "endl".
Le programme permettra également d'ignorer la première ligne dans le fichier source en raison de l'appel de la fonction discard_line(reg), de sorte que vous ne pouvez obtenir les autres données(5 6 7 8). Il n'est pas nécessaire d'utiliser la fonction.
en outre, assurez-vous que vous initialisation de la matrice et de vérifier les limites du tableau, comme MAX_SIZE, afin de garantir la saisie de données pas de débordement de la pile.
OriginalL'auteur MichaelGD