我试图让用户输入一个文本文件的名称,然后打开该文本文件并读取它的第一行,它告诉将读取多少行并为其分配空间。然后我想将其余的行存储在分配的空间中。我正在使用 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。但是,当我转到查找器中的文件时,它里面有文本。任何人都可以帮我解决这个问题。
这工作的家伙。感谢所有的帮助。