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

   对于存储一个矩阵的文本文件中的行数,我们可以很轻易的用一个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 ;
}


展开阅读全文
博主设置当前文章不允许评论。

没有更多推荐了,返回首页