C語言 讀取檔案數字相乘?

目前在自學C語言

想嘗試 把 "A.txt" 的數字 和 "B.txt" 的相乘

再把結果輸出在 "C.txt" 上

可是都沒有頭緒

請問 有人可以指點嗎

十分感謝

已更新項目:

不好意思 沒打清楚

A .TXT 和 B.TXT 中各有一串數字

想讀取內容 在作運算 把結果輸出 到 C.TXT 中

舉例 A.TXT 裡有 2 3 4

B.TXT裡有 5 6 7

想把相乘結果 輸出

變成 C .TXT 裡有 10 18 28

謝謝

3 個解答

評分
  • 4 年前

    #include <stdio.h>

    int main(int gc, char *gv[]) {

    FILE *fa, *fb, *fc;

    int a,b;

    char *d = "";

    fa = fopen("a.txt", "r"); if(!fa) {printf("a.txt open error"); return 1;}

    fb = fopen("b.txt", "r"); if(!fb) {printf("b.txt open error"); return 2;}

    fc = fopen("c.txt", "w"); if(!fc) {printf("c.txt open error"); return 3;}

    for(d="";1==fscanf(fa,"%d",&a) && 1==fscanf(fb,"%d",&b);d=" ") fprintf(fc,"%s%d",d,a*b);

    fclose(fa); fa=NULL;

    fclose(fb); fb=NULL;

    fclose(fc); fc=NULL;

    return 0;

    }

    • Commenter avatar登入以對解答發表意見
  • 阿明
    Lv 5
    4 年前

    A .TXT 和 B.TXT假如是你自己的程式產生存入檔案,數字串資料需要用陣列或結構方式儲存,用陣列或結構固定大小的檔案進行二進位格式建檔存在硬諜,檔案讀取時一樣讀入同樣的陣列或結構,讀檔後數字串放在一樣的陣列或結構的記憶位置,這樣才能找到每一數字串正確的記憶體位置,然後每一數字串轉成變數(用數字串轉成變數的函數atoi( )) ,就可以進行相乘運算,但一般數字運算會直接用變數儲存檔,不會用asll 碼的數字串儲存,讀取後在轉成變數做乘運算

    假如你是用文字模式的記事本建立數字串檔案,因為它的檔案沒固定大小,存放數字串或文字記憶體位置沒固定,你需要找出數字串憶體位置很麻煩錯誤又高,還有需要限制鍵盤輸入時,一連串數字不能有空白鍵(比如123不能1 23)及混英文字母,所以鍵盤輸入不用文字模式要用變數,不然運算結果常錯誤, (跟另一解答「本週之星] 意思差不多)

    )

    • Commenter avatar登入以對解答發表意見
  • 4 年前

    .txt 是檔案,嚴正說是文字檔案,不是數字,如果檔案內有數字,你應先讀取。

    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。