gpt4 book ai didi

c - Xcode C读取用户文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:51 25 4
gpt4 key购买 nike

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

这很管用。感谢所有的帮助。

最佳答案

这可能更接近您想要的。

#include <stdio.h>      
#include <math.h>
#include <stdlib.h>


int main(void)
{
int NumOfLines, *Num;
char FileNam[75];
FILE *ptr_file = NULL;

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, "%d", &Num[i]);
printf("%d\n", Num[i]);
}

free(Num);
fclose(ptr_file);
return 0;
}

这将采用以下格式的输入文件:

2
123
456

我从您的代码中猜测该格式应该是什么。现在发生的是第一个数字代表还有多少行(所以不包括它自己)。然后程序会尝试读取那么多行。

你犯的一些错误:

  • 使用字符串文字而不是同名变量调用fopen
  • 在您打算使用 while 时使用 do/while
  • 分配Num 数组时没有正确处理指针

关于c - Xcode C读取用户文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10092682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com