这是打开.txt文件的正确方法

时间:2019-09-09 10:17:20

标签: c

这部分代码负责打开我的data.txt文件并从中读取几个数字(数组的大小和要填充的数字),但是Virtual Programming Lab和C都说“ 找不到在可执行文件中添加程序“” ”。我通过编写程序尝试了这种方式,该程序只能从.txt中读取1个数字,并且出现相同的错误,因此我想即时通讯这样做完全错误。还有什么其他方法可以读取.txt文件?谢谢

Array* input() {

int x,y;
int i;
Array *p;

FILE *f=fopen("data.txt", "r");

p = (Array*) malloc(sizeof(Array));

fscanf(f, "&d",&x);
fscanf(f, "&d",&y);

p->n1 = x;
p->n2 = y;
p->p1 = (int*) malloc(sizeof(int) * p->n1);
p->p2 = (int*) malloc(sizeof(int) * p->n2);
for(i=0; i < p->n1; i++)
fscanf(f, "%d", &p->p1[i]);
for(i=0; i < p->n2; i++)
fscanf(f, "%d", &p->p2[i]);
fclose(f);
return p;
}

1 个答案:

答案 0 :(得分:0)

以下建议的代码:

  1. 可能会导致编译器输出:“ untitled.c:114:9:警告:未使用的变量'ptrToArray'[-Wunused-variable]”
  2. 执行所需的功能
  3. 正确检查I / O错误
  4. 在发生任何I / O错误后正确清理
  5. 为了灵活起见,将结构的定义与该类型的typedef分开
  6. 函数:idx需要类型为malloc()的参数。这导致需要从size_tint的其他几项更改
  7. 为便于阅读和理解:分隔代码块:size_t for if else while do...while switch { {1}}通过一个空白行
  8. 出于可读性考虑,在C运算符周围,括号内,逗号后,分号,括号内,方括号内插入空格
  9. 遵循公理:每行仅一个语句,每个语句(最多)一个变量声明。
  10. 将函数case的参数列表正确声明为default
  11. 为了便于阅读(人类),代码始终缩进。每个开括号“ {”之后的缩进。每个右大括号'}'之前的缩进。使用4个空格的缩进宽度。
  12. 为便于阅读和理解:通过2个空白行分隔功能。
  13. 将局部变量input()的范围限制为在其中声明的代码块,而不是函数的范围:void

现在,建议的代码:

i