【发布时间】:2020-09-09 02:37:06
【问题描述】:
我尝试使用 scanf 读取文件名但失败。 我很不擅长指针,找不到问题。 指向字符串数组的指针有问题吗? 这是我的代码:
int* Read_file(char* str[])
{
FILE* fp = fopen(str[1], "r");
if(fp == NULL)
{
printf("File cannot open\n");
return NULL;
}
int rows = 0;
while(!feof(fp))
{
if(fgetc(fp) == '\n')
{
rows ++;
}
}
rows ++;
int* keys = (int*)malloc(3 * rows * sizeof(int));
fseek(fp, 0L, 0);
while(!feof(fp))
{
for(int i = 0;i < rows;i ++)
{
for(int j = 0;j < 3;j ++)
{
fscanf(fp,"%d", &keys[(3 * i) + j]);
}
}
}
fclose(fp);
return keys;
}
int main()
{
char* str[20];
printf("Build_tree ");
scanf("%s",&str);
int* keys = Read_file(str);
return 0;
}
【问题讨论】:
-
执行时到底发生了什么?
-
我试图打印键中的数字(上面的代码中没有显示),但什么也没显示。我确定我在命令行输入的txt文件不是空的,里面有9个数字。
-
能否附上文件内容
-
1 2 3 2 4 5 3 6 7
标签: string file pointers scanf fopen