Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Passando arquivos por redirecionamento em C

Olá, senhores! Estou querendo fazer uma programa que recebe um arquivo de texto por redirecionamento. Ele funcionaria da seguinte forma: Eu executaria o programa passando um arquivo que contém uma lista de 81 números e o programa iria alocar os números dentro de uma matriz 9x9 e depois iria imprimir as linhas e as colunas. Porém, estou tendo dificuldade para implementar a segunda dimensão da matriz...

Até o momento, foi isso que eu consegui:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int sud[81];
    int i;


    while(scanf("%ls",sud) != EOF)
    {
        for(i=0;i<9;i++)
        {
            printf("%c",sud[i]);
        }
        printf("\n");
    }

    return 0;
}

arquivo .txt que eu desejo passar como argumento:

609000100
431208509
587401300
803070004
006384020
204510093
012845930
948637001
065000487

Uso do programa:

$./programa.x < arquivo.txt

Se alguém puder me ajudar com isso, ficaria muito grato!

1 resposta
solução!

Olá Eduardo, tudo bem ? Espero que sim.

Tentei uma abordagem diferente, li um char por vez, tive um problema para ignorar a quebra de linha.


#include <stdio.h>
#include <stdlib.h>

int main()
{
    char matriz[9][9];
    char lixo;


    for(int i=0; i<9; i++){
        for(int j=0; j<9; j++){
            scanf("%c",matriz[i]+j);   
        }
        scanf("%c",&lixo); 
    }

    for(int i=0; i<9; i++){
        for(int j=0; j<9; j++){
            printf("%c",matriz[i][j]);   
        }
        printf("\n");
    }

    return 0;
}

Não sei se essa abordagem serve a seu proposito, qualquer coisa explica com mais detalhes que ajudo a pensar em outra.

E caso tenha alguma dificuldade para entender o código não hesite em perguntar.

Bons Estudos, abraço.