Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用函数fread()读取文件中的数据块_C++ - Fatal编程技术网

C++ 使用函数fread()读取文件中的数据块

C++ 使用函数fread()读取文件中的数据块,c++,C++,如果我使用 size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ), 如何解除ptr所指数据的防护?。好像我有 int main() { void *ptr fread(ptr,1,100,file); printf("%s",ptr); } 您误解了fread声明中void*ptr的目的 从 缓冲区-指向存储读取对象的数组的指针 首先,参数必须是可以存储对象的有效指针。使用 void *ptr; fread

如果我使用

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ),
如何解除ptr所指数据的防护?。好像我有

int main()
{
void *ptr
fread(ptr,1,100,file);
printf("%s",ptr);
}

您误解了
fread
声明中
void*ptr
的目的

缓冲区-指向存储读取对象的数组的指针

首先,参数必须是可以存储对象的有效指针。使用

void *ptr;
fread(ptr,1,100,file);
将导致未定义的行为,因为
ptr
未指向任何有效的内容

其次,参数类型的原因是
void*
,允许您从流中读取所有类型的数据。例如

// Read an integer
int i;
fread(&i, sizeof(int), 1, file);

// Read 10 integers
int a[10];
fread(a, sizeof(int), 10, file);

// Read a double
double d;
fread(&d, sizeof(double), 1, file);

您误解了
fread
声明中
void*ptr
的目的

缓冲区-指向存储读取对象的数组的指针

首先,参数必须是可以存储对象的有效指针。使用

void *ptr;
fread(ptr,1,100,file);
将导致未定义的行为,因为
ptr
未指向任何有效的内容

其次,参数类型的原因是
void*
,允许您从流中读取所有类型的数据。例如

// Read an integer
int i;
fread(&i, sizeof(int), 1, file);

// Read 10 integers
int a[10];
fread(a, sizeof(int), 10, file);

// Read a double
double d;
fread(&d, sizeof(double), 1, file);

您正在读取的数据是什么格式的?(另外,在指定值之前,您不能将
ptr
的值传递给
fread
),您正在读取的数据的格式是什么?(另外,除非为其赋值,否则不能将
ptr
的值传递给
fread