我有这个代码昨天工作,但它似乎我编辑了一下,失去了工作版本。我不能让这个工作了。每次程序从文件扫描矩阵时,都会跳过一行!
我基本上想要从.txt文件中扫描矩阵。但每次扫描的第一行时间,第二个被跳过,并且它读取第三代替:(
这是我的代码:
for(i=0;i<=test->rowmat1;i++){
for(j=0;j<=test->colmat1;j++){
fscanf(fin,"%f\t",&test->mat[i][j]);
}
fscanf(fin,"%*[^\n]",&test->mat[i][j]);
}
例如,对于矩阵:
1.00 2.00 3.00
4.00 5.00 6.00
7.00 8.00 9.00
10.00 11.00 12.00
如果我提取3行3周的cols,我得到:
1.00 2.00 3.00
7.00 8.00 9.00
然后失败了,它要跳过的塞康d线但没有什么后10 11 12
为什么它停止工作?我有什么错误?
@Derek:去除第二scanf函数,我得到了3矩阵
1.00 2.00 3.00
4.00 5.00 6.00
7.00 8.00 9.00
10.00 11.00 12.00
1.00 2.00 3.00
5.00 6.00 7.00
9.00 10.00 11.00
的最后一个数字被跳过提取3:提前小号
请帮帮忙,谢谢 。
如果test-> rowmat1 = 3且test-> colmat1 = 3,那么这将读取四个值,而不是三个值。 – 2010-05-10 00:28:59
@Kinopiko,谢谢你的回复。你究竟是什么意思?它将如何读取4个值?在3和3时,它将读取3个值:S – NLed 2010-05-10 00:40:42
'i = 0;对于i = 0,1,2和3,i <= 3'是正确的,所以这将读取四个值。 – 2010-05-10 01:34:25