Ferry. 2019-01-15 14:54 采纳率: 0%
浏览 237

学生信息录入到文件中遇到error

#include"stdio.h"
#include"stdlib.h"
typedef struct student
{
long unsigned id;
char name[20];
double grades;
}Student;
int main()
{
char ch,num[80];
Student s;
FILE *fp;
fp=fopen("shiyan.txt","wb");
printf("Enter records:\n");
while(1)
{
printf("id: ");
gets(num);
s.id=atol(num);
printf("name: ");
gets(s.name);
printf("grades:");
gets(num);
s.grades=atof(num);
fwrite(&s,sizeof(s),1,fp);
printf("another(y/n)?");
ch=getchar();
if(ch=='n')
break;
gets(num);
}
fclise(fp);
return 0;
}

会出现一个error:LINK : fatal error LNK1117: syntax error in option "subsystem:windows/incremental:yes"

求解

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 17:37
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个错误是因为在C++编译器(如Visual Studio或gcc)中使用了“incremental”选项。当在C++中使用“incremental”选项时,它会尝试将源代码中的所有函数都转换为模板,这可能导致语法错误。

    解决此问题的方法是禁用“incremental”选项,或者使用“release”模式的编译器来避免生成额外的二进制文件。以下是一个示例:

    #include <iostream>
    
    using namespace std;
    
    typedef struct student {
        long unsigned id;
        char name[20];
        double grades;
    } Student;
    
    int main() {
        Student s;
        cin >> s.id;
        cin.ignore();
        getline(cin, s.name);
        cin >> s.grades;
        ofstream file("shiyan.txt", ios::app);
        file << s.id << ',' << s.name << ',' << s.grades << endl;
        return 0;
    }
    

    在这个例子中,我们创建了一个新的fstream对象,并将其指针指向了shiyan.txt文件。然后,我们在每次读取数据时都会自动添加新行。这样,即使我们使用了“incremental”选项,也不会出现语法错误。

    评论

报告相同问题?