ユーザーにテキスト ファイルの名前を入力してもらい、そのテキスト ファイルを開いて最初の行を読み取らせようとしています。次に、割り当てられたスペースに残りの行を格納したいと思います。私は MacBook を使用しており、プログラム Xcode を使用しています。私はCでプログラムをやっています。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int MMSize, CacheSize, CBLineSize, SetAsso, NumOfLines, *Num;
char RepPol, FileNam[75];
FILE *ptr_file;
printf("Enter the name of the input file containing the list of memory references generated by the CPU: ");
scanf( "%s", FileNam );
fpurge( stdin );
ptr_file = fopen(FileNam, "r");
while (ptr_file==NULL){
printf("failed to open file.\nPlease enter a valid file name: ");
scanf( "%s", FileNam );
fpurge( stdin );
ptr_file = fopen( FileNam , "r" );
}
fscanf(ptr_file, "%d", &NumOfLines);
Num = malloc(sizeof(int) * NumOfLines);
for (int i=0; i<NumOfLines; i++) {
fscanf(ptr_file, "%*[^0123456789]%d", &Num[i]);
printf("%d\n", Num[i]);
}
free(Num);
fclose(ptr_file);
return 0;
}
私のコードは正常に動作しますが、常に入力ファイルが NULL であると表示されます。入力ファイルをプロジェクトのソース フォルダーに file1.txt として保存しました。file1.txt という名前とファイルの場所全体を入力しようとしましたが、ファイルが NULL であると表示されるため、ループが継続的に実行されます。ただし、ファインダーでファイルに移動すると、テキストが含まれています。誰でもこれで私を助けてくれませんか。
これはうまくいきます。すべての助けに感謝します。