首页 > 编程语言 >C++从txt中读取矩阵

C++从txt中读取矩阵

时间:2023-03-11 19:34:59浏览次数:41  
标签:读取 ifs C++ vector vit txt cout

1. 分析

给定一个txt数据,中间由空格分割,目标是读取数据,以便后续使用。由于不清楚数据大小,为了方便管理,采用vector容器作为存贮对象。

 

 

 

2. 程序

下面是读取的方法,读取之后,存入v中

 1 void file_to_vector(string filename, vector<vector<double>> &v) {
 2     //1.包含头文件
 3     // 
 4     //2.创建流对象
 5     ifstream ifs;
 6     vector<double> v_temp;
 7 
 8     //3.指定打开方式
 9     ifs.open("data.txt", ios::in);
10     if (!ifs.is_open()) {
11         cout << "文件打开失败" << endl;
12     }
13 
14     //4.读内容
15     string buf;
16     int k;
17     double temp;
18 
19     while (getline(ifs, buf)) {
20         k = 0;
21         v_temp.clear();
22         for (int i = 0; i < buf.size(); i++) {
23             if (buf[i] == ' ' || buf[i] == '\n' || i == buf.size() - 1) {
24                 temp = stod(buf.substr(k, i-k));
25                 v_temp.push_back(temp);
26                 k = i + 1;
27             }
28         }
29         v.push_back(v_temp);
30     }
31 }

下面给出打印v中每个元素的方法

 1 void printVecotor(vector<vector<double> > &v) {
 2     for (vector<vector<double> >::iterator it = v.begin(); it < v.end(); it++) {
 3         for (vector<double>::iterator vit = (*it).begin(); vit < (*it).end(); vit++) {
 4             cout << setw(10) << setiosflags(ios::left) << *(vit) << " ";
 5         }
 6          7         cout << endl;
 8     }
 9 
10 }

 

3. 测试

下面给出程序测试结果

 

 

标签:读取,ifs,C++,vector,vit,txt,cout
From: https://www.cnblogs.com/kongkongxiaoxie/p/17206747.html

相关文章

  • 一个网络和串口全双工通信的c++库
    欢迎指正概述该库是https://github.com/ZLMediaKit/ZLToolKit和https://github.com/itas109/CSerialPort的集合这是一个通信库,包括网络和串口通信网络包括:TCP客户端......
  • 第 1 章 C++编程基础 Basic C++ programming
    1.1如何撰写C++程序_HowtoWriteaC++Program练习1.4,在终端上让用户输入fastname和lastname并打印出来练习1.4#include<iostream>#include<vector>#include......
  • Python 3 os.walk读取指定文件路径后,打印路径参数为空
    今天有时间自己尝试了一下os.walk的小实验,结果出现了一个小问题:在交互模式下,运行我的python脚本,没有打印任何内容  返回去看一下test.py内容 返回去看一下文件路......
  • 对C++做爬虫的代码进行简单分析
    有这样一段代码#include<stdio.h>#include<tchar.h>#include<windows.h>#include<urlmon.h>#pragmacomment(lib,"urlmon.lib")intmain(){ TCHARurl[]=TE......
  • C# 调用 c++ DLLL试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B
     网上各种设置目标编译平台为x86都解决不了问题,有可能是DLL依赖的文件的位数有问题1、先查一下被调用的DLL用了那些DLLvs的开发人员工具控制台输入 dumpbin/depe......
  • C++ 标准库中的 vector
    标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象,都有一个与之对应的索引,索引用于访问对象。vector是一个类模板,编译器根据模板创建类或者函......
  • C++ | 計算兩點的角度
    #include<math.h>#include<iostream>#include<stdio.h>#definePI3.141592654#defineEARTH_RADIUS6378.137//地球近似半徑u......
  • C++协程
    参考C++那些事之C++20协程#include<iostream>#include<coroutine>structgenerator{structpromise_type{intcurrent_value;std::suspend......
  • C/C++小学生测验[2023-03-10]
    C/C++小学生测验[2023-03-10]题目2:小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)进入测试之前先输入用户名、密码登录,......
  • C++的常量
    在C++中,常量可以分为以下几种类型:1、整型常量(IntegerConstants):整数常量,可以是十进制、八进制或十六进制,例如42、052、0x2A等。整型常量可以使用后缀来指定类型。u......