gpt4 book ai didi

C++ ftell 段错误

转载 作者:行者123 更新时间:2023-11-28 02:53:17 25 4
gpt4 key购买 nike

我正在尝试从二进制文件中读取数据。我得到了一个包含所有变量的结构来提取数据。我正在使用 fread 函数,我需要获取文件的总大小作为 freads 输入之一。我正在使用 ftell 函数查找大小,但在调用 ftell 函数时出现段错误。

这是我的代码:

#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;

struct header{
int so_on;
int so_forth;
int etc;
};

int main(){
FILE *fin;
header cvvHeader;
fin=fopen("file.binaryextension","r");
int headersize= sizeof(header);
header* ptr=&cvvHeader;
long filesize =ftell (fin); //Segmentation fault happens here
fread(ptr,headersize,filesize,fin);
}

谢谢你的帮助

最佳答案

您的以下代码正在产生问题,您需要检查 fin 是否有效或为 NULL。

fin=fopen("file.binaryextension","r");
//....code
long filesize =ftell (fin); //Segmentation fault happens here



// fin should be non-null pointer when file is successfully opened.
if(fin) {
long filesize =ftell (fin);
}

关于C++ ftell 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22588302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com