在项目代码中执行文件打印时出错:块C

在项目代码中执行文件打印时出错:块C,c,codeblocks,fopen,file-handling,fclose,C,Codeblocks,Fopen,File Handling,Fclose,嘿,所以我有一个我一直在做的项目,所有的东西都可以工作,但是当我尝试做一个选项时,用户通过切换:case将数据保存到一个文件的选项,它停止了工作(切换成功了) 我不明白为什么,因为我检查了很多教程,我的代码和他们的一样 出于某种原因,它使我的开关无法工作,并声明了一个错误:跳转到case label-fpermissive in codeblocks int main() { double trec [8] = {0,0,0,0,0,0,0,0}; int i;

嘿,所以我有一个我一直在做的项目,所有的东西都可以工作,但是当我尝试做一个选项时,用户通过切换:case将数据保存到一个文件的选项,它停止了工作(切换成功了) 我不明白为什么,因为我检查了很多教程,我的代码和他们的一样 出于某种原因,它使我的开关无法工作,并声明了一个错误:
跳转到case label-fpermissive in codeblocks

int main()
{
    double trec [8] = {0,0,0,0,0,0,0,0};
    
    int i;
    int a;
    double exp;
    FILE *fp;

    ;

  
    switch(a)
    {
    case 0:
        exit (0);

    break;

  

    case 3:
        int velk = 8;
        i = 0;
        fp=fopen("text.txt", "w+");
        //for(int i = 0; i < velk; ++i){
        //   fprintf(fp, "%lf ", trec[i]);
        //}
        fprintf(fp, "%d  %lf",1 , trec[i]);
        fclose(fp);
    break;

    case 4:
     i = 1;
     while(i<8){
        printf(" %s its %lf",day[i], trec[i]);
        i++;
    }
    break;

  
intmain()
{
双树[8]={0,0,0,0,0,0,0};
int i;
INTA;
双经验;
文件*fp;
;
开关(a)
{
案例0:
出口(0);
打破
案例3:
int-velk=8;
i=0;
fp=fopen(“text.txt”,“w+”);
//对于(int i=0;i而(i由于在开关情况下缺少括号{},您的代码无法编译:

case 3:
    {
        int velk = 8;
        i = 0;
        fp=fopen("text.txt", "w+");
        //for(int i = 0; i < velk; ++i){
        //   fprintf(fp, "%lf ", trec[i]);
        //}
        fprintf(fp, "%d  %lf",1 , trec[i]);
        fclose(fp);
    }
案例3:
{
int-velk=8;
i=0;
fp=fopen(“text.txt”,“w+”);
//对于(int i=0;i
欢迎使用SO。您在谈论代码的哪一部分?对于这些非英语描述,大多数人无法直接从打印的菜单中理解。请添加您的输入、输出以及预期输出。“停止工作”这不是一个有用的问题描述。@Gerhardh这是fileopen aka case 3的一部分,用于创建一个文件,您可以删除所有不相关的代码。如果您在测试中只使用1个案例,为什么每个人都需要阅读所有其他6个选项?您几乎不需要理解它,所有代码都可以工作,但当我实现文件打开时,它打破了这个案例切换您没有任何函数调用的验证。在未检查数字或解析参数的情况下,切勿调用
scanf
和相关函数。在未检查
NULL
的返回值的情况下,也不得使用
fopen
。可能是因为我在显示开关盒没有br的教程中操作过ackets,在那之前它也工作过,但我知道如果这是正确的方法,它可能会因为没有括号和必须打开一个fileVariables无法在switch case语句中声明而崩溃,就像您在“int velk=8;”中所做的那样有关详细信息,请参阅我在其他情况下使用了它,它也起到了作用。什么意思不能在case语句中声明,在声明新变量时需要使用括号。更改现有变量值或调用函数时不需要括号。代码编译时会发出警告。顺便说一句,内容不需要括号在
switch()
语句中的
case:
节。但是,当尝试在多个
case:
语句中声明具有相同名称的变量时,必须使用这些语句。