c - 在 CUDA C 中打开文件

标签 c file fopen fread

我正在尝试打开两个文件(linoteste.ima 和 sysmattest.dat),它们都包含一个矩阵。成功打开文件后,当我打印它们时,我只得到包含零的矩阵,我不知道我做错了什么。这不是与 CUDA 相关的问题,而是 C 问题,只是我打开文件以使用 CUDA 进行矩阵乘法。我的代码如下(我尝试用 while cicle 替换 fread 以一次读取一个元素,但它不起作用):

    float*matlino=(float*)malloc(sizeof(float)*100*100);
float*matsys=(float*)malloc(sizeof(float)*10000*10000);

//Open linogram
FILE * flino, *fmat;
flino = fopen ("linoteste.ima","r");      //also tried with "rb" instead of "r"
if (flino!=NULL)
{
    fread (matlino,sizeof(float),100*100,flino);
    fclose (flino);
    puts("Linograma aberto com sucesso");
}
else
    puts("impossivel abrir linograma");
printMat(matlino,10,10);

//Open system matrix

fmat = fopen("sysmattest.dat","r"); 
if (fmat!=NULL)
{
    fread (matsys,sizeof(float),10000*10000,fmat);
    fclose (fmat);
    puts("Matriz sistema aberta com sucesso");
}
else
puts("impossivel abrir matriz sistema");

提前致谢!

最佳答案

你试过 fscanf() 了吗?

类似于:

if(flino!=NULL)
{
    int i;
    for(i = 0; i < 10000; i++) fscanf(flino, "%f", &malino[i]);
    fclose(flino);
}

关于c - 在 CUDA C 中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5338836/

相关文章:

c - 如何使用 opencv cvblobs 库配置 visual studio 2010

c - 输入多次写入输出文件 (C)

c - 如何在阅读(fopen)文件时阻止文件

c - malloc 内存损坏,fopen

c - 内存分配问题?

c - 这个函数调用不工作有什么原因吗?

c - 如何在 Linux 中序列化对目录的访问?

c++ - 在 C++ 中将对象 vector 保存到文件

php - 在 PHP 中追加文件...无法换行 (\n) 来处理变量

c - 试图不覆盖 C 中的文件?