Usuwanie danych, język C

0

Cześć, mam taki programik, który zmienia liczbe dziesiętną w binarną, a następnie tworzy obraz z jedynek i zer. (Zrozumiecie jak wpiszecie sobie te dane:)

20 24

0
16128
65504
131056
114936
98424
60
60
30
30
30
30
30
30
30
62
60
124
98428
114936
131056
65504
16256
0

Czy macie pomysl co zrobić aby nie było widać tych właśnie danych, które się wprowadza, żeby został tylko "obraz" Z góry dzięki za odp!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void zamien(int x, int n){
    int bin[2000];
    char tab[2000];
    int w=0,i;
    for(int i=0; i<n; ++i)
        bin[i]=0;
    while(x!=0){
        bin[w]=x%2;
        x=x/2;
        w++;
    }
    for(i=0; i<=n; i++){
       if(bin[i]==1) printf("@");
        else printf(",");
    }
}
int main(){
    int n,m,j,i; /* n - l wierszy || m - l kolumn */
    int x;
    scanf("%d",&n);
    scanf("%d",&m);
    for(i=0; i<m; ++i){
        scanf("%d",&x);
         zamien(x,n);
    }

return 0;}
2
Kondzio33 napisał(a):

Zrozumiecie jak wpiszecie sobie te dane:

Ja nie rozumiem:
https://godbolt.org/z/Ko9oG8rrT
No dobra po poprawce widać coś sensownego: https://godbolt.org/z/W3d4GE3ec

Zapisz dane w tablicy i odtwórz obraz z tablicy.

1

Przekieruj dane z pliku:
program.exe < dane.txt
z konsoli.
lub tworzysz szortcut a w nim przekierowujesz z pliku jak wyżej.

1

https://godbolt.org/z/Y78cs7co8

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

typedef struct Glyph {
    int rows;
    int columns;
    int *data;
} Glyph;

void GlyphFree(Glyph* glyph)
{
    free(glyph->data);
}

int GlyphLoad(Glyph* g, FILE* f)
{
    int i;
    
    if (2 != scanf("%d %d", &g->columns, &g->rows))
    {
        return 0;
    }
    g->data = malloc(sizeof(int[g->rows]));
    for(i=0; i < g->rows; ++i){
        scanf("%d", g->data + i);
    }
        
    return 1;
}

void GlyphPrintRow(int x, int n, const char digits[]){
    int i;
    for(i=0; i<=n; i++) {
        putc(digits[x % 2], stdout);
        x /= 2;
    }
    putc('\n', stdout);
}

void GlyphPrint(Glyph *g){
    int i;
    for(i=0; i<=g->rows; i++) {
        GlyphPrintRow(g->data[i], g->columns, ",@");
    }
}

int main(){
    Glyph glyph;
    if (GlyphLoad(&glyph, stdin))
    {
        GlyphPrint(&glyph);
        GlyphFree(&glyph);
    }
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1