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 ;
}


  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值