ファイルを開く関数を作成し、この開いたファイルを他の関数で使用したいと考えています。ファイルが開かれるべきであるが、ファイルが空になると、実際にreadWholeFileは何も出力しないので、これは私のコード、ファイルを開く関数を作成し、他の関数でそれらを使用する方法
#include <stdio.h>
int openFile(FILE* inputFile)
{
inputFile = fopen("input.txt", "r");
if (inputFile != NULL)
return 0;
else
return -1;
}
void readWholeFile(FILE* inputFile)
{
char str[20];
while (feof(inputFile)) {
fscanf(inputFile, str);
printf("%s\n", str);
}
}
int main() {
FILE* inputFile;
if (openFile(inputFile) == 0) {
readWholeFile(inputFile);
}
else
printf("File didn't open");
fclose(inputFile);
return 0;
}
「ファイルが開けませんでした」が印刷されませんされています。どうしたの?
'FILE * inputFile':ローカルでのみ割り当てられたファイルハンドルを失ってしまいます。* –
' FILE * 'はあなたの関数の結果です。なぜ(そしてどのように)それを議論として渡すでしょうか?なぜあなたは関数からそれを単に返すのではないのですか? –