【问题标题】:C, Arrays, file format not recognizedC、数组、​​文件格式无法识别
【发布时间】:2015-03-20 08:40:08
【问题描述】:

对于我们的家庭作业,我们必须编译我们在学校编写的程序。我输入它没有错误(与我的同事验证)并且程序无法运行,我正在使用 DEV C++ 并且错误日志显示,文件无法识别:文件格式无法识别。

我尝试使用整数而不是双精度,但它保持不变...我不知道出了什么问题。

#include <stdio.h>
#define VELIKOST 23
int main (void)
{
  double dPolje[VELIKOST];
  int iStevec,iVecje=0;

  printf("Algoritem, ki določi koliko elementov podatkovnega polja imajo vrednosti vecje ali enake od 10 \r\n");

  for(iStevec=0;iStevec<VELIKOST;iStevec++)
  {
    printf("Vnesite %i. stevilo:",iStevec=iStevec+1);
    fflush(stdin);
    scanf("%lf",&dPolje[iStevec]);

      if(dPolje[VELIKOST]>=10)
      {
        iVecje++;
        printf("Element dPolje [%i]=%f.",iStevec,dPolje[iStevec]);
      }
       printf("%i elementov polja je imelo vecje ali enako vredost 10.",iVecje);
       return(0);
  }
}

【问题讨论】:

  • 您确实意识到fflush(stdin) 是未定义的行为,对吧? (你为什么还要刷新它?stdin 是一个输入流……你不想刷新stdout,而是?)另外,你确实意识到iStevec=iStevec+1 是等同于++iStevec,所以每次迭代都会增加循环计数器两次?此外,“无法识别文件格式”错误(如果是编译器错误)与数组无关,根本与您的代码无关,而是与您的编译器设置和/或调用有关。
  • @TheParamagneticCroissant 他们在一些教程中找到了它们。
  • 也许Dev C++在读取源文件时没有使用正确的字符编码?如果 IDE 尝试将其读取为 US-ASCII 或其他不正确的编码,则字符串文字中的非拉丁字符可能会导致此错误。
  • scanf("%lf",&amp;dPolje[iStevec]);的检查结果 --> if (1 != scanf("%lf",&amp;dPolje[iStevec])) break;
  • 一个简单的“hello World”程序也能工作吗?可能是你编译的代码和你的机器不兼容。

标签: c dev-c++


【解决方案1】:

我猜 Dev C++ 不支持斯洛文尼亚语。

创建一个新文件并尝试以下代码:

#include <stdio.h>

#define SIZE 23

int main(){
    double dField[SIZE];
    int i, larger = 0;

    printf("This algorithm, determines how many data field items have values greater than or equal to 10.\n");

    for (i = 0; i < SIZE; i++){
        printf("Enter field number %i:", i + 1); //Note I fixed this original code had i = i + 1
        //fflush(stdin); unneeded
        scanf("%lf", &dField[i]);

        if (dField[i] >= 10){
            larger++;
            printf("Field number %i = %lf", i, dField[i]);
        }
    } //Moved this above final output and return
    printf("%i field items were greater than or equal to 10 ", larger);
    return 0;
}

我希望这会奏效。

无论哪种方式,我肯定会更改编译器。 Visual Studio Community 是一个功能齐全的优秀 IDE。

【讨论】:

  • @Janac9 同样的错误?很明显,它可以编译并运行。我怀疑你的 Dev C++ 设置有问题。我怎么强调都不为过,以至于你会浪费大量的生命来试图让它发挥作用。是否有不能更改 IDE 的原因?
猜你喜欢
  • 2011-05-25
  • 2021-01-13
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多