switch语句打开文件
做了一个算法,测试矩阵有三个,每次需要打开一个txt文件,(里面是矩阵信息),能不能用一个循环让程序直接跑下来呢?比如先做第一个矩阵,做完之后换第二个做,然后做第三个,然后再结束程序。
我是这样写的
switch(file)
{
case 1: FILE *fp=fopen("e:\\F2DA.txt","r");fprintf(result,"%s\t","F2DA");break;
case 2: FILE *fp=fopen("e:\\F3D.txt","r");fprintf(result,"%s\t","F3D");break;
case 3: FILE *fp=fopen("e:\\ORS.txt","r");fprintf(result,"%s\t","ORS");break;
default:FILE *fp==NULL; cout<<"Can't find file "<<file<<endl;
}
if(fp==NULL)
并且在每次做完一个文件后把那个文件关掉,但是编译出来说报错。
initialization of 'fp' is skipped by 'case' label
initialization of 'fp' is skipped by 'case' label
应该怎么做呢?谢谢!
[解决办法]
一般来说,写一下几个函数,一个处理矩阵,假设是 doMatrix(Matrix );
一个从文件中读入矩阵 ReadMatrix(FILE*,Matrix&);
一个测试程序
test_Matrix(const char *filename)
{
Matrix m;
FILE *fp=fopen(filename,"r");
//...
ReadMatrix(fp,m);
doMatrix(m);
}
一个驱动函数,假设是 main.
于是,这样:
main()
{
test_Matrix("file1.txt");
test_Matrix(...)
...
}