我正在尝试打开两个文件(linoteste.ima和sysmattest.dat),它们都包含一个矩阵。成功打开文件后,当我打印它们时,我只得到包含零的矩阵,我不知道我做错了什么。这不是CUDA相关的问题,而是C语言,它只是我打开文件来与CUDA进行矩阵乘法。我的代码如下(我尝试用一个单独的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");
提前致谢!
答案 0 :(得分:1)
您是否尝试过fscanf()?
类似的东西:
if(flino!=NULL)
{
int i;
for(i = 0; i < 10000; i++) fscanf(flino, "%f", &malino[i]);
fclose(flino);
}