我正在嘗試創建一個包含兩個文件指針的結構。 (見下文)C語言,文件結構
typedef struct dataFiles
{
FILE * inputSet;
FILE * outputSet;
}fData;
我希望能夠用它來使用函數來打開和關閉文件,我有一個就在這裏:
void openFiles(struct dataFiles * fiData)
{
fiData->inputSet = fopen("inputfile.txt","r");
fiData->outputSet = fopen("outputfile.txt","o");
return fiData;
}
在主函數中我第一次聲明結構爲:
fdata * fileData;
然後嘗試,並通過訪問:
openFiles(&fileData);
我的程序運行和編譯,但我有問題從輸入文件中獲取數據到結構中,當我檢查我的輸出時,它都是0。任何有關如何實現這種類型的代碼的一般技巧將不勝感激。 (注意:這是一個有關學校作業的問題,但是,我已經達到了作業的要求,並且僅僅因爲我自己的好奇而對此感興趣)〜謝謝!
你的編譯器應該抱怨(至少是警告)關於你發佈的代碼中至少有兩件事情 - 試圖爲'void'函數返回一個非void表達式並將錯誤類型的指針傳遞給'openFiles() '。更不用說'fileData'聲明中的錯字。 – 2012-01-18 23:37:24
作爲一個附註,除非你只打開一個ascii文件,你應該添加「b」標誌fopen。即使用'fopen(文件名,「rb」)'。不同之處在於,如果沒有它,您將在文件的早期獲得EOF。 – chacham15 2012-01-18 23:37:30
您的程序是否編譯時沒有警告?提示:永遠不要忽略編譯器警告! – asaelr 2012-01-18 23:37:36