摘要:如果输入中给出了一个矩阵的具体的行列数,那很好办,循环读取就行了,如果没有给你具体的行列数,而且输入中的整型数据之间还有逗号,那应该怎么来读取呢?下面给出具体代码:

  一、输入没有给出矩阵的具体行列数的情况

     ifstream in("input.txt");
string s;
int count=, count1=;// 分别记录行数和元素个数
while (getline(in, s))
{
istringstream is(s);
int inter;
while (is >> inter)// 读取每行的所有数据
{
count1++;
cout << inter << " ";
}
count++;
cout << endl;
}
cout << count <<" "<<count1<< endl;
测试数据

输出为:

即:总共有十行,共30个元素。

二、输入中带有逗号的情况

  只要把逗号换成空格就行了,代码如下:

     ifstream in("input.txt");
string s;
int count=, count1=;// 分别记录行数和元素个数
while (getline(in, s))
{
for (int i = ; i < s.size(); i++)// 如果输入中有‘,’,将其换成空格
if (s[i] == ',')
s[i] =' ';
istringstream is(s);// //把s中的字符串存入字符串流中   
       //cout << is.str() << endl;// str():使istringstream对象返回一个string字符串 
int inter;
while (is >> inter)// 读取每行的所有数据
{
count1++;
cout << inter << " ";
}
count++;
cout << endl;
}
cout << count <<" "<<count1<< endl;
测试数据
,,
,,
,,
,,
,,
,,
,,
,,
,,
,,6
输出为:

    和上面的结果一样。

  

  总结:知道了行数和元素总个数,就能知道矩阵的行列数了!

  附:代码分析:

   ifstream in("input.txt");将对象与特定的文件关联起来。// #include<fstream>  // 里面定义了一个用于处理输出的ifstream类。

  getline(in, s);// 读取整行的输入,并丢弃换行符

  关于istringstream is(s);:

  C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。
  istringstream类用于执行C++风格的串流的输入操作。
  ostringstream类用于执行C风格的串流的输出操作。
  strstream类同时可以支持C风格的串流的输入输出操作。

C++的输入输出分为三种:

(1)基于控制台的I/O

(2)基于文件的I/O

(3)基于字符串的I/O

cin读取不知行列数的矩阵以及带逗号的整型数据的更多相关文章

  1. 教你如何修改FireFox打开新标签页(NewTab Page)的行列数

    FireFox的打开新建标签页(即NewTab Page)默认只能显示3x3个网站缩略图,这9个自定义的网站,非常方便快捷,什么hao123的弱爆了,本人从未用过此类导航网站,曾经用过的也只是abou ...

  2. Python 用load_workbook 读取excel某个单元格数据、读取excel行数、列数

    from openpyxl import load_workbook path = r'D:\pywork\12' # EXCEL信息所在文件夹 e= load_workbook(path + '/' ...

  3. php 读取windows 的系统版本,硬盘,内存,网卡,数据流量等

    php 读取windows 的系统版本,硬盘,内存,网卡,数据流量等 <?php header("Content-type: text/html; charset=utf-8" ...

  4. FireDAC 如何按整型(Byte)读取 MySQL TinyInt(1) 类型字段?

    最近使用 MySQL 发现 FireDAC 中查询 TinyInt(1) 字段结果是 Boolean 类型,这并不是我想要的结果,而TinyInt(1)的范围是-128-127之间,如何按整型读取呢? ...

  5. 读取hive的表结构,生成带comment的视图建表语句

    ### 读取hive的表结构,生成带comment的视图建表语句 # 读取配置文件中的表并进行遍历 grep -v '^#' tablesFile|while read tableName do st ...

  6. C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)

    题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...

  7. matlab如何读取未知行数,带头文件和字段名的txt文件

    文件格式是这样的 20120108 50024 X235RZB30801 01 15 2361 2362 2363 2364 2365 2366 2367 2368 2369 236A 236B 23 ...

  8. [C++]cin读取回车键

    最近碰到一个问题,就是从控制台读取一组数,如: 12 23 34 56 若是使用 int data; while ( cin >> data ) {//...} 当回车后,不能有效转换到后 ...

  9. 51Nod 1083 矩阵取数问题(矩阵取数dp,基础题)

    1083 矩阵取数问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下 ...

随机推荐

  1. switch表达式、case穿透

    记得第一次学switch的时候那是还是学习c语言的时候,整体的写if-else,switch,现在回想起来已经是很多年前的事了,好了今天让我们再来回顾下简单的switch 语法 switch(n) { ...

  2. golang-开发配置

    环境变量配置 Windows GOROOT GOROOT = D:\ProgramDev\Go GOROOT GOROOT = D:\WorkSpace\goProjects GOBIN GOBIN ...

  3. 透析ARP原理

    对于ARP协议, 我本来是不了解的,只是解决了两个ARP相关的P2的Bug后,也就懂了.本文将从原理的角度对ARP做一个透析. 1. 什么是ARP? ARP(Address Resolution Pr ...

  4. centos6.5下安装zip格式的tomcat7和tomcat8,并同时运行

    前提: 我的tomcat7安装在 /home/hadoop/software/apache-tomcat-7.0.69, tomcat8安装在 /home/hadoop/software/apache ...

  5. hadoop-0.20.2安装配置

    该环境在Vmware Workstation 12 上安装配置一共三台机器master,slave1,slave2. 操作系统:Cenos 7.0 hadoop 版本:hadoop-0.20.2,版本 ...

  6. SQL基本操作(工作中够用了)

      以下文章内容都是我自己从平时学习SQL语言时整理而来,写这篇文章是希望我或大家在使用能更方便的查询. 如果有不完整或不正确的地方请大家指出~谢谢大家 基本SQL操作 创建数据库 CREATE DA ...

  7. Tomcat源码分析——请求原理分析(上)

    前言 谈起Tomcat的诞生,最早可以追溯到1995年.近20年来,Tomcat始终是使用最广泛的Web服务器,由于其使用Java语言开发,所以广为Java程序员所熟悉.很多人早期的J2EE项目,由程 ...

  8. LINQ的查询标准操作汇总

    记录LINQ的查询标准操作

  9. [javaSE] 数据结构(二叉树-遍历与查找)

    前序遍历:中,左,右 中序遍历:左,中,右 后序遍历:左,右,中 二叉树查找 从根节点进行比较,目标比根节点小,指针移动到左边 从根节点进行比较,目标比根节点大,指针移动到右边 /** * 前序遍历 ...

  10. 撩课-Web大前端每天5道面试题-Day10

    1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...