从Matlab文件中读取mxArray类型变量-部分代码分析

这是我做的笔记,看到这个代码时觉得处理有点妙,做笔记记录之。

部分源代码:

。。。。

int main(int argc,char** argv)

{

  char name[_FILE_NAME_LEN];

  int num=0;

  int nFlag1,nFlag2;

  printf("请输入要读取的文件名称(*.mat):");

  scanf("%s",name);

  while ((name[num++] != '\0') && (num<=_FILE_NAME_LEN-1)) ;   //注意后面是分号,当时我一直以为跟下面一句是连起来组成的一个循环,其实不是。

  num=num-1;  //下面的代码是文件名的处理。

  if (num>_FILE_NEME_LEN-5)  //为什么是减5 呢,后面代码可以知,这是为了为加上后缀留下空间。

    {

      printf("输入的文件名太长!\n");

      return 0;

    }

  nFlag1=strcmp(name+num-4,".MAT");  //该如何理解呢?根据后面的判断,可以知前面的要大于后面的,假设成立,然后逆推。

                    //name是数组名,是指向name[0]的指针,所以是数组的表示知识,

                    //所以这个应该是处理用户输入的文件名中是否加入后缀的判断处理。

  nFlag2=strcmp(name+num-4,".mat");

  if(nFlag1&& nFlag2)

  {

    name[num]='.';

    name[name+1]='M';

    name[name+2]='A';

    name[name+3]='T';

    name[name+4]='\0';

  }

  analyze_matfile(name);  //自定义的目标函数

  getchar();

  retuen 0;

}

上一篇:解决Springboot 的ajax跨域问题-动静分离


下一篇:hbase基础建表语句