2017-06-03 64 views
0

我一直在研究Huffman項目。幾乎完成了,現在我唯一需要做的就是存儲在輸出文件中。這是我的解碼功能。將一行數據存儲到文件中

void decode(struct Node * root, int * encodeString) 
{ 
    int i; 
    struct Node * temp = root; 
    for (i = 0; encodeString[i] != -1; i++) 
{ 

      if (encodeString[i] == 1) 
    { 
        temp = temp -> right; 
      } 
    else 
    { 
        temp = temp -> left; 
      } 

      if (isLeaf(temp)) 
    { 
        printf("%c", temp -> character); 
        temp = root; 
      } 

    } 

} 

在主函數中調用

decode(start, encodedString); 
    printf("\n"); 

結果減壓:

Fred Fish 1 2 3 4 5 6 7 8 9 10 

我會再打它的主要功能。當我打電話時,解碼後的字符串將被打印出來。有沒有辦法閱讀這些字符。我沒有去fgets(),因爲我不知道字符的大小。我試過scanf(「%99c」),但它不起作用,請告知

+1

問題是要存儲還是讀取? – LearningC

+0

@LearningC問題是放出解壓縮的輸出文件 –

+0

檢查c中的文件讀/寫操作。 – LearningC

回答

0

爲了能夠在文件上打印某些東西,首先必須打開所需的文件。 使用功能fopen這樣做。

如果您將模式參數設置爲「r」,您將只能夠從該文件讀取。如果你想寫,如你所說,使用選項「W」。

您可以使用諸如fwrite之類的可用函數在文件上編寫代碼。但也有不少其他人,只是做你的研究。

完成時請記得通過fclose的調用關閉先前打開的文件。