Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 1 decade ago

c語言 直橫行互換 且家空格

目前需要將一份txt檔案中的資料做行列互換

並且將此資料做分隔 在輸出到另一份txt檔案中

最初txt的內容(無限多筆)格式如下:

6B7A

C76A

4466

867C

2761

E069

F562

C161

.

.

.

由直行換成列(8筆data為一列) 並且兩格數值就控一格

會變成如下所示:

6B 7A C7 6A 44 66 86 7C 27 61 E0 69 F5 62 C1 61

請c的高手幫幫忙吧

非常急著需要用 謝謝

Update:

大大不好意思 執行沒辦法執行耶有錯誤

不知道我哪邊沒有做好!

Update 2:

你好我執行的時候都沒辦法讀取檔案耶

想請問假如我檔案名稱如果為1.txt這樣

這樣我讀檔該怎麼修改

只有看過另一種fopen . fclose這種方式

Update 3:

謝謝大大我已經用出來了!

非常的感謝你

2 Answers

Rating
  • Favorite Answer

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h>

    #define MAX_BUF 128

    int main(void)

    { size_t len;

    FILE *pIn, *pOut;

    charinName[FILENAME_MAX+1],

    outName[FILENAME_MAX+1],

    buf[MAX_BUF];

    do

    { printf("Input filename: ");

    len = strlen(fgets(inName, FILENAME_MAX, stdin));

    inName[--len]= '\0';

    } while ((pIn=fopen(inName, "r")) == NULL);

    do

    { printf("Output filename: ");

    len = strlen(fgets(outName, FILENAME_MAX, stdin));

    outName[--len] = '\0';

    } while ((pOut=fopen(outName, "w")) == NULL);

    len = 0;

    while (fgets(buf, MAX_BUF, pIn) != NULL)

    { if (++len & 7) buf[6] = '\0', buf[5] = ' ';

    else buf[7] = '\0', buf[6] = '\n', buf[5] = '\r';

    buf[4] = buf[3]; buf[3] = buf[2]; buf[2] = ' ';

    fprintf(pOut, "%s", buf);

    }

    fclose(pIn);

    fclose(pOut);

    // system("PAUSE");

    return 0;

    }

    2009-10-10 06:54:57 補充:

    謝謝 Jacob 大大。我沒注意到 char inName 的空白被吃掉了。

  • 1 decade ago

    charinName

    應該是

    char inName

    運氣不好的回答者的空白被貪吃的知識+吃掉了!

    請你自己補上吧!

    要是還有其它的錯誤,請把錯誤訊號公佈一下!

    不然,回答者運氣再好,也不一定矇得對。

Still have questions? Get your answers by asking now.