首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

switch语句打开文件,该如何解决

2012-05-01 
switch语句打开文件做了一个算法,测试矩阵有三个,每次需要打开一个txt文件,(里面是矩阵信息),能不能用一个

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(...)
...
}

热点排行