读书人

ifstream 有关问题

发布时间: 2012-03-01 10:25:46 作者: rapoo

ifstream 问题
我想把一个由行号,列号,权值组成的txt文件(大概384行),放入矩阵a中 ,然后矩阵自乘.
#include <iostream>
#include <fstream>
main()
{
int matrix[384][3];
char filename[] = "384.txt";
ifstream f("384.txt",ios_base::in); // 这句抱错啊,55555555555555

int r,c;
while(f>>r) //读行号
{
f>>c; //读列号
f>>matrix[r][c]; //读权值
}
int i,j,m;
int b[384][384];
for(i=0;i <=383;i++)
{

for(j=0;j <=383;j++)
{
b[i][j]=0;
for(m=0;m <3;m++)
{
b[i][j]=matrix[i][m]*matrix[i][m]+b[i][j];
}
}
}
printf("here is the answer:\n");
for(i=0;i <=383;i++)//所有数组下标都以0开始
{
for(j=0;j <=383;j++)
{
printf("%d ",b[i][j]);
}
printf("\n");
}
}



[解决办法]

C/C++ code
 #include  <iostream>  #include  <fstream> using namespace std;
[解决办法]
C/C++ code
#include  <iostream> #include  <fstream> using namespace std;               // 这里int main()                // c++ 里main需要声明返回类型{       int matrix[384][3];       char filename[] = "384.txt";       ifstream f("384.txt");            if (f.fail())                // 判断是否打开成功        return 1;    int r,c;       while(f>>r) //读行号       {           f>>c; //读列号           f>>matrix[r][c]; //读权值       }       int i,j,m;       int b[384][384];       for(i=0;i   <=383;i++)       {           for(j=0;j   <=383;j++)           {               b[i][j]=0;               for(m=0;m   <3;m++)               {                   b[i][j]=matrix[i][m]*matrix[i][m]+b[i][j];               }           }       }       printf("here is the answer:\n");       for(i=0;i   <=383;i++)//所有数组下标都以0开始       {           for(j=0;j   <=383;j++)           {               printf("%d ",b[i][j]);           }           printf("\n");       }       f.close();              // 关闭文件    return 0;} 

读书人网 >C++

热点推荐