c语言从文件读入某一长度的数据到指定位置
时间: 2024-10-11 17:10:34 浏览: 22
在C语言中,你可以使用标准库函数`fread()`或者`fgets()`来从文件中读取特定长度的数据并将其存储到指定位置。这里我们假设你想要精确地读取n个字节的数据。
```c
#include <stdio.h>
size_t read_data_to_position(int *target_address, size_t n, FILE *file) {
char buffer[1024]; // 你可以根据实际需要调整这个缓冲区大小
size_t bytes_read;
if (file == NULL || target_address == NULL) {
printf("Error: Invalid file pointer or address.\n");
return 0;
}
// 试图读取n个字节到buffer
bytes_read = fread(buffer, sizeof(char), n, file);
if (bytes_read != n && ferror(file)) {
perror("Reading from file failed.");
return 0; // 或者处理错误情况
}
// 将读取的数据复制到目标地址
memcpy(target_address, buffer, bytes_read); // 如果目标地址不是连续内存,可能会有数据损坏的风险
return bytes_read;
}
int main() {
int data_buffer[100];
size_t position = 50; // 指定读入的位置(从0开始计数)
FILE *fp = fopen("example.txt", "rb"); // 打开二进制模式文件,假设文件名为"example.txt"
if (fp == NULL) {
perror("Opening file failed.");
return 1;
}
size_t num_bytes = read_data_to_position(&data_buffer[position], 10, fp);
fclose(fp);
// 现在data_buffer[position]至data_buffer[position+num_bytes-1]包含了读取的数据
阅读全文