Jump to content
  • 0
felipefernandes

[C++ / <fstream> ] Tamanho da Matriz

Question

Olá,

 

gostaria de saber se há a possibilidade fazer a leitura de um arquivo, no formato de uma matriz, e retornar o número ou tamanho de uma linha, por exemplo. No caso seria uma matriz quadrada, como:

 

10 8 29 3

17 5 41 30

21 2 14 9

 

A intenção seria para definir um parâmetro base para que o processo ficasse mais dinâmico.

 

Sou praticamente iniciante em C++, daí comecei a implementar como segue (imprimindo todos elementos do arquivo):

 

#include <iostream>
#include <vector>
#include <fstream>

 

using namespace std;

 

int main()
{
    /* ============== FAZ LEITURA DO ARQUIVO =================== */
    ifstream graph;//declara uma variável file para um arquivo
    
    graph.open("teste.txt", ifstream::in);//Abrindo o arquivo
    if(graph == NULL)
    {
        cout << "arquivo desconhecido\n";
    }
    
    do
    {
        int num;
        graph >> num;
        if(!graph.fail())
        {
            cout << num << " ";
        }
    }
    while(graph.good());

 

    graph.close();

 

    return 0;
}

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0
void lerMatriz(int linha) recebe numero de linhas a serem lidas
{
fstream file; //CRIA UM OBJETO
    file.open("entrada-01.txt"); //ABRINDO ARQUIVO
    if(!file) cout<<"Erro \n"; //VERIFICANDO SE HOUVE PROBLEMA NA ABERTURA
    file.seekg(0);
    for (int i = 0; i <  linha; ++i) //Esse 'for' delimita o numero de linhas
    {
    	while(file.get(ch) && ch != '\n') //Delimita numero de colunas do arquivo (considerei que ele vai ler todas as colunas)
    }
}

Se querer delimitar o numero de colunas, basta criar mais um for para coluna.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Pavolin9
      Bom dia, estou desenvolvendo um sistema bem simples de estoque onde os itens serao armazenados em uma matriz segue codigo:
          package main;          import java.io.Console;     import java.util.Arrays;     import java.util.Scanner;          public class IncluirItem{         public static void main(String[] args) {             String[][] itens = new String[2][5];             String[] campos = new String[7];             int opcao = 0;             int remover;             int verificar = 0;             int adcionar = 0;             int tamanho = 2;                          Scanner sc = new Scanner(System.in);                          campos [1] = "Nome";             campos [2] = "Codigo de barras";             campos [3] = "quantidade";             campos [4] = "validade";             campos [5] = "data de entrada";                          do {                 System.out.println("\n\n### Sistema de estoque - simplificado ###");                 System.out.println("=========================================");                 System.out.println("      |     1 - Adcionar itens   |");                 System.out.println("      |     2 - Excluir itens    |");                 System.out.println("      |     3 - Mostrar itens    |");                 System.out.println("      |     0 - Sair             |");                 System.out.println("=========================================\n");                                  System.out.println("Escolha uma opcao: ");                 opcao = sc.nextInt();                 System.out.print("\n");                                  switch (opcao) {                 case 1:                     System.out.println("Cadastro de itens: ");                     //Adciona itens                      for (int i = 0; i <2; i++) {                         System.out.println("Adcionar item? ");                         System.out.println("1 para sim \n2 para nao: ");                         adcionar = sc.nextInt();                         if (adcionar == 1) {                             System.out.printf("%d. item \n", (i+1));                             verificar = verificar + 1;                             for (int j=0; j < 5; j++) {                                     System.out.printf("%s ", campos[j+1]);                                 System.out.printf("= ", i,(j+1));                                 itens[i][j] = sc.next();                                                              }                             System.out.printf("\n");                         }                         else {                             break;                         }                     }                                              break;                 case 2:                     //Remove itens                     System.out.println("Exclusao de itens: ");                     if(verificar > 0) {                         for (int i = 0; i <2; i++) {                                 System.out.printf("%d. item \n", (i+1));                             System.out.printf("ID do produto= 00%d \n", (i+1));                             System.out.printf("\n");                         }                     }                     else {                         System.out.println("Nenhum item listado!");                     }                     System.out.println("\nEscolha o numero do item a ser removido: \n");                     remover = sc.nextInt();                     for (int i = 0; i <2; i++) {                         if(remover == 2) {                         itens[i] = itens[i-1];                         }                     }                     break;                 case 3:                     //Mostra itens                     if(verificar > 0) {                                                      for (int i = 0; i <2; i++) {                                     if (verificar == 2) {                                 System.out.printf("%d. item \n", (i+1));                                 System.out.printf("ID do produto= 00%d \n", (i+1));                                 for (int j=0; j < 5; j++) {                                         System.out.printf("%s ", campos[j+1]);                                     System.out.printf("= %s \n", itens [i][j]);                                 }                                 System.out.printf("\n");                             }                             else {                                         itens = Arrays.copyOf(itens, tamanho - 1);                                         verificar = 0;                                         System.out.printf("%d. item \n", (i+1));                                         System.out.printf("ID do produto= 00%d \n", (i+1));                                         for (int j=0; j < 5; j++) {                                                 System.out.printf("%s ", campos[j+1]);                                             System.out.printf("= %s \n", itens [i][j]);                                         }                                         System.out.printf("\n");                                         break;                                 }                         }                     }                     else {                         System.out.println("Nenhum item listado!");                     }                                          break;                 default:                     System.out.println("Opção Inválida!");                     break;                 }             } while(opcao != 0);         }     }  
      Minha duvida é a seguinte, eu quero excluir uma posicao da matriz, exemplo: registrei dois itens, na coluna um e coluna dois da matriz e gostaria de remover a coluna um da lista, como realizo essa função, e outra coisa, eu gostaria de quando eu inserisse pela segunda vez algum item a matriz começasse na proxima possicao vazia, atualmente se eu pedir para inserir um novo item a matriz começa da primeira posicao e assim apaga os elementos ja inseridos.
       
    • By flipmartinz13
      Alguém pode me ajudar nessa questão de C++? não estou conseguindo construir o algorítmo corretamente.

      5.92)    Faça um algoritmo que leia a matrícula, nome, sexo e três notas dos alunos de uma escola e obtenha os seguintes resultados:
      a) A matrícula da aluna que obteve a maior média.
      b) A matrícula do aluno que obteve a menor média.
      c) O percentual de mulheres na turma.
      d) Quantos alunos foram aprovados, independente do sexo.
      e) O percentual de alunas aprovadas.
      Obs.: o flag é uma matrícula igual a 0 (zero).
    • By flipmartinz13
      Estou tentando fazer esse exercício de introdução a programação em C++, e estou tendo dificuldades para criar os algoritmos. Alguém poderia me ajudar?


      Uma agência de turismo quer fazer um levantamento das praias da cidade para um programação turística de verão, sabendo-se que cada praia tem um nome e uma distância (em Km) do hotel. Criar um algoritmo que forneça os seguintes dados:
      18

       Porcentagem de turistas nas praias próprias do hotel
       A praia mais adiante
       Nome e distancia das praias não-próprias com distancia do hotel maior que 10 km.
      O algoritmo acaba quando se digita @ para nome da praia.
    • By juninhogpe
      Boa tarde.
      Estou com problemas ao subir arquivos no formato MP3 com o código abaixo. Sempre usei ele e hoje apenas aparece erro.
      Abaixo o código:
       
      $titulo = $_POST['titulo']; if ($titulo != ""){ $texto = $_POST['texto']; $padre = $_POST['padre']; $data = date("Y-m-d", strtotime($_POST['data'])); $audio = isset($_FILES["audio"]) ? $_FILES["audio"] : FALSE; $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE; if($arquivo && $audio){ if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $arquivo["type"])){ echo utf8_encode("<script> alert ('Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.');</script>"); } if(!preg_match("/^audio\/(mp3|MP3)$/", $audio["type"])){ echo utf8_encode("<script> alert ('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"); } else{ preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); $dd = date("msdYiH"); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; $up = move_uploaded_file($arquivo["tmp_name"], $imagem_dir); preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio["name"], $ext); $dd = date("msdYiH"); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; $up_audio = move_uploaded_file($audio["tmp_name"], $audio_dir); if ($up){ $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome', '$data','$audio_nome', '$texto', '$padre')"); } } }else echo utf8_encode("<script> alert ('Erro no upload.');</script>"); if($conn->query($sql) === TRUE){ echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>"); echo utf8_encode('<script>window.location="palavra.php";</script>'); } else{ echo "Erro: " . $sql . "<br />" .$conn->error; echo utf8_encode('<script>window.location="palavra.php";</script>'); } }  
      O que estou fazendo de errado?
      Obrigado.
    • By Jefferson andre
      Saudações, como eu faço para monitorar o conteúdo de novos arquivos criados em uma determinada pasta?
       
      Motivo: quando se envia um arquivo para a Sefaz ela retorna alguns arquivos sendo o primeiro o mais importante pois o seu conteúdo informa o nome do próximo é assim por diante.
      Agradeço a ajuda e por sugestões
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.