C++ 文件任意读取问题
发布网友
发布时间:2024-10-07 07:13
我来回答
共4个回答
热心网友
时间:2024-11-15 15:00
//这个容易,你要读到哪个位置,先把文件内指针移到那个位置再读就可以,如下个简单例子:
#include <stdio.h>
int main()
{
int a = 0 , b = 0, c=0;
printf("请输入a b 值\n");
scanf("%d", &a);
scanf("%d", &b);
FILE *fp;
fp = fopen("file.txt", "a");
if (fp == NULL)
{
printf("打开文件失败");
return -1;
}
fwrite(&a, sizeof(int), 1, fp);
fwrite(&b, sizeof(int), 1,fp);
fclose(fp);
//把b读出来
fp = fopen("file.txt", "r");
if (fp == NULL)
{
printf("打开文件失败");
return -1;
}
fseek(fp, sizeof(int), SEEK_SET);
fread(&c, sizeof(int), 1, fp);
fclose(fp);
printf("%d\n", c);
return 0;
}
热心网友
时间:2024-11-15 15:00
如果整个文件都是一种数据类型的话,可以计算出每个数据项的起始地址的,然后用一个什么函数把读取指针移过去就行了,我对C++不是太清楚,如果是C语言的话,用一个fseek函数就可以了
热心网友
时间:2024-11-15 15:01
用seekg函数和seekp函数来完成随机的读与取,
seekg函数是把输入指针移到指定的文件位置
seekp函数是把输出指针移到指定的文件位置
这个比较不好说。还是加我百度HI来说吧。
热心网友
时间:2024-11-15 15:01
不来就算,参考代码:
#include <cstdio>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
float a;
ifstream fin("data.txt", ios::binary);
fin.seekg(sizeof(float) + 1);
fin >> a;
cout << a;
system("PAUSE");
fin.close();
return 0;
}