将数据输出到文本文件中的问题

时间:2013-01-07 17:32:40

标签: c output text-files

我目前正在尝试构建一个计算值的程序,并将这些值输出到文本文件中。在编译时,我收到以下错误:

'ISO C90禁止混合减速和代码'

我的编译器是Quincy 2005,它正在标记第11行(int f = 10;)作为问题:

#include <stdio.h>


int main()

{

FILE *output;
output = fopen("inductor.txt","a+");

int f=10;
float l, ir, realir;

printf("What is your inductor value (mH)\n");
scanf("%f", &l);

  while (f< 10000000){
  ir=((2*3.141)*f*l);
  realir = ir/1000;

  printf("If Frequency = %d Hz" ,f);
  printf(" Inductive reactance= %f Ohms\n",realir);

  fprintf(output, "%d Hz : %f Ohms\n ", f, realir);


 f=f*10;

 }

fclose(output);

return 0;
}

令人讨厌的是,改变编译器不是一种选择。

3 个答案:

答案 0 :(得分:3)

我相信它说你需要先声明所有变量,然后再编码。

E.g:

FILE *output;
int f=10;
float l, ir, realir;


output = fopen("inductor.txt","a+");
printf("What is your inductor value (mH)\n");

答案 1 :(得分:1)

output = fopen("inductor.txt","a+");向下移动到其他变量声明的下方。您必须首先声明所有变量,然后使用它们。

答案 2 :(得分:0)

根据之前的答案,有两种方法可以否定这一点,因为ISO C90不允许混合变量声明和代码。 已经提到了一种方法:按建议移动变量声明。

FILE *output;
int f=10;
float l, ir, realir;
output = fopen("inductor.txt","a+");
// More code

还有另一种方式。根据ISO C90,您只能在块打开{后在代码中声明变量。由于您可以随时自由地引入代码块,因此如果您不想更改代码,只需启动一个块并将代码放在那里。请注意,以这种方式声明的变量仅在包含它们的块中有效。我强烈推荐第一个选项。

FILE *output;
output = fopen("inductor.txt","a+");
{
int f=10;
float l, ir, realir;
// More code on this variables.
}
// Variables declared in the block previously will not be valid here.