Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida com o código


EduardoAugusto

Pergunta

Olá a todos, estou estudando c++ faz pouco tempo e estou tentando criar um algoritmo para ler um arquivo .txt para me ajudar na disciplina de laboratório de física para não ficar digitando sempre os dados.

Mas estou encontrando um problema, invez de ler a matriz 3x3, esta lendo 3x2 e também com os dados fora de ordem do arquivo txt,

O arquivo txt fiz no bloco de nota e o exemplo que estou testando.

3 2 3
1 2 5
7 8 9

Aqui o código:

#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;

int main()
{
 int l,c;
 //declaração da matriz
 int matriz[3][3];
 ifstream txtFile;
 txtFile.open ("matriz.txt",ios::in);
 txtFile >> l >> c;

 for(int i=0;i<l;i++)
        {
    for (int j=0;j<c;j++){
        txtFile >> matriz[j];
    }
 }

 cout << "a matriz lida do arquivo tem tamanho" << l << " x " << c << endl;
 cout << "conteudo da matriz do arquivo:" << endl;
for(int i=0;i<l;i++)
    {
    for (int j=0;j<c;j++){
        cout << matriz[j];
    }
    cout << endl;
 }
    cout <<"l"<< l << endl;
    cout <<"c"<< c << endl;
    return 0;

}

Quem puder me ajudar.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

é normal que esteja lendo 3X2. Na linha "txtFile >> l >> c;" você esta lendo esses 2 inteiros desde o arquivo, mais concretamente da linha "3 2 3", primeiro um 3 e logo um 2, ou seja você lê 3 e joga esse 3 em l, e logo depois lê 2 e joga ele na variavel c.
Talvez você queira ler primeiro o tamanho que terá a matriz, e logo depois a matriz, neste caso seu arquivo deveria ter isso:
3 3
3 2 3
1 2 5
7 8 9
Outras opções seriam perguntar ao usuário tamanho que terá a matriz, ou incluso contar o tamanho da matriz desde o mesmo arquivo.

Link para o comentário
Compartilhar em outros sites

  • 0
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;

int main() {
    int l, c;
    int matriz[3][3];
    //declaração da matriz
    ifstream txtFile;
    txtFile.open ( "matriz.txt", ios::in );
    txtFile >> l >> c;
    
    cout << "l" << l << endl;
    cout << "c" << c << endl;
    cout << "\nA matriz lida do arquivo tem tamanho" << l << " x " << c << endl;
    



    for ( int i = 0; i < l; i++ ) {
        for ( int j = 0; j < c; j++ ) {
            txtFile>>matriz[i][j];
        }
    }
    
    cout << "Conteudo da matriz do arquivo:\n" << endl;
    
    for ( int i = 0; i < l; i++ ) {
        for ( int j = 0; j < c; j++ ) {
            cout << matriz[i][j];
        }
        
        cout << endl;
    }

    return 0;
    
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...