c++如何读取文本文件中矩阵,得到矩阵的列数

来源:互联网 发布:摄影师怎么接淘宝单子 编辑:程序博客网 时间:2024/06/05 00:53

   对于存储一个矩阵的文本文件中的行数,我们可以很轻易的用一个getline函数得到,代码在下面,但是如何得到列数了,是把它一行一行的读进来,然后再写代码分解吗?太麻烦了把,现在想到了一个简便的方法,我们知道文本文件的末尾有一个\n作为换行符,而元素与元素之间有一个空格相隔,所以我们每读取一个数字, 就判断后面一个符号是不是换行符,这样我们就能得到一行的列数. peek  和 get 函数都可以实现, peek只是检查,不会让流前进,而get会让流前进.

int getFileColumns(const char * fileName){    ifstream fileStream ;    fileStream.open(fileName,std::ios::_Nocreate);    double tmp;    char c;    int count=0;    for(int i=0;i<10000;i++){        fileStream>>tmp;        ++count;        c=fileStream.peek();        if('\n'==c)        {            break;        }    }    fileStream.close();    return count;}

int getFileRows(const char *fileName){ifstream fileStream;string tmp;int count=0;fileStream.open(fileName);if(fileStream){ while(getline(fileStream,tmp,'\n')){ count++; } fileStream.close();}return count ;}


0 0
原创粉丝点击