从 C++ 中的文本文件读取一定的偏移量
reading from text file in c++ at certain offset
>我有一个大小为 16000 * 16000 的对角线主导矩阵。我想为我的实验提取此矩阵的前 n 行和 n 列(例如前 100*100 个单元格(,以便提取的矩阵仍然是对角线主导的。我这样做的尝试是:
#include <stdio.h>
#include <string.h>
#include <mpi.h>
#include <stdlib.h>
int main()
{
double **Matrix_A;
FILE *fp;
int global_size = 100;
int offset = 0;
if ((fp = fopen ( "matrix_16000.txt", "r")) == NULL) {
printf("Can't open input matrix file");
exit(-1);
}
Matrix_A = (double **) malloc(global_size*sizeof(double *));
for(int irow = 0; irow < global_size; irow++)
{
offset = irow * 16000;
fseek(fp, offset, SEEK_SET);
Matrix_A[irow] = (double *) malloc(global_size * sizeof(double));
for(int icol = 0; icol < global_size; icol++){
fscanf(fp, "%lf", &Matrix_A[irow][icol]);
}
}
fclose(fp);
return 0;
}
这将不起作用,因为偏移量不是固定的,因为矩阵是随机生成的。知道我的编译器是 mpicc 的任何更好的主意
你实际上非常接近。 fseek 不会起作用;而是扫描到 EOL:
int c;
Matrix_A = (double **) malloc(global_size*sizeof(double *));
for(int irow = 0; irow < global_size; irow++) {
Matrix_A[irow] = (double *) malloc(global_size * sizeof(double));
for(int icol = 0; icol < global_size; icol++){
fscanf(fp, "%lf", &Matrix_A[irow][icol]);
}
while ((c = fgetc(fp)) != EOF && c != 'r' && c != 'n') {}
}
fclose(fp);
相关文章:
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 通过指针偏移量访问结构变量值
- 以线程安全的方式转换 C/C++ 中时区名称字符串的时区偏移量
- librdkafka:rd_kafka_assignment 返回分配分区的偏移量 -1001
- 是否通过向封闭对象的地址添加字节偏移量来访问子对象
- 向指针地址添加 20 个字节偏移量
- glMapBufferRange(..) 中的偏移量关系和 glDrawArraysInstanced(..) 中的第一
- 是否有与 C# Structs/StructLayout 等效的功能,C++中的字段偏移量?
- 我的 sumASCII 函数中的此偏移量是多少?
- boost::序列化中的派生类偏移量计算.有效吗?
- RedisGraph 语法错误在偏移量 8 靠近"创建"
- c++ 读取进程内存基址 + 偏移量不起作用
- 读取文本文件时 seekg() 的奇怪偏移量
- 从 C++ 中的文本文件读取一定的偏移量
- C++如何使用读取进程内存查找进程内存中使用的最后一个(偏移量 - 地址)
- C++ 读取内存地址/指针和偏移量
- 读取/写入指定位偏移量的值
- C++通过指针和偏移量从类中读取
- 卡在读取偏移量/指针处
- 使用JNI读取带有偏移量的内存