匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 1 0 年前

如何用程式語言將文字檔內容做90、180、270度的轉向?

如何用程式語言將文字檔內容做90、180、270度的轉向?

假如說我有一個文字檔(.txt)的內容如下

 890

1234567

7654321

 098

我要如果利用程式語言(c或VB)將這個文字內容做90、180、270度

的轉向呢?也就是說讓這先文字就向圖片檔一樣,可以做整個顯

示上的轉向?

有點困難

我想了很久,希望有人可以幫我解解惑阿~好苦惱

這有辦法可以成功嗎?

2 個解答

評分
  • 1 0 年前
    最佳解答

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h>

    #define MAX 256

    char **b, **r;

    void dim2(char ***A, int h, int w)

    { int i, w0;

    char *buf, **idx;

    *A = 0; // Assume allocation fail

    if ( idx = (char **) malloc(sizeof(char*) * h) ) // if (!NULL)

    if ( buf = (char *) malloc(sizeof(char ) * h * w) )

    { for (w0=i=0; i<h; i++, w0+=w)

    idx[i] = &buf[w0];

    *A = idx;

    }

    else free(idx); // Can not alloc the 2nd, free the 1st

    }

    void show(int h)

    { int i;

    for (i=0; i<h; i++)

    printf(b[i]);

    printf("\n");

    }

    void rota(int h, int w)

    { int i, j;

    char **t;

    for (i=0; i<w; i++)

    for (j=0; j<h; j++)

    r[i][h-j-1] = b[j][i];

    for (i=h+1,j=0; j<w; j++)

    r[j][h] = '\n', r[j][i] = 0;

    t = r, r = b, b = t;

    }

    int main(int argc, char **argv)

    { int i, j, h, w;

    FILE *f;

    if (f=fopen(argv[1], "r"))

    { dim2(&b, MAX, MAX);

    dim2(&r, MAX, MAX);

    for (w=h=0; h<MAX-2 && fgets(b[h], MAX-2, f); h++)

    { i = strlen(b[h]);

    if (i>w) w = i;

    }

    for (i=0; i<h; i++)

    { for (j=strlen(b[i])-1; j<w-1; j++)

    b[i][j] = ' ';

    b[i][j] = '\n', b[i][w] = 0;

    }

    for (i++,j=0; j<w; j++)

    b[h][j] = '\n', b[i][j] = 0;

    w--;

    show(h); // Original

    rota(h, w); show(w); // 90

    rota(w, h); show(h); // 180

    rota(h, w); show(w); // 270

    free(*b); free(b);

    free(*r); free(r);

    } else

    printf("Please add a valid text_file_name following the command\n");

    system("PAUSE");

    return 0;

    }

  • 1 0 年前

    這種東西我在工程數學上有聽過不過那節課我在睡覺

    我只知道要把他存入2維陣列

    然後使用工程數學裡面有個公式可以將資料交換,但是我不記得了,目前只記得要把他存在2維陣列,然後使用回圈去調動他的位子

    剩下的你自己想看看,這個只是個起頭,最多使用土法煉鋼慢慢去掉他位子

還有問題?馬上發問,尋求解答。