最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++保存txt文件實(shí)現(xiàn)方法代碼實(shí)例

 更新時(shí)間:2020年11月02日 16:59:28   作者:小蝸牛嘰咕往前  
這篇文章主要介紹了C++保存txt文件實(shí)現(xiàn)方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

簡單示例

#include <windows.h>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
  ifstream myfile("in.txt");
  ofstream outfile("out.txt", ios::app); //ios::app指追加寫入
  string temp;
   
  while (getline(myfile, temp)) //按行讀取字符串
  {
    outfile << temp<<endl;//寫文件
   
  }
  myfile.close();
  outfile.close();
  while (1);
  return 0;
}

實(shí)際應(yīng)用

一個det.txt存的都是目標(biāo)檢測的信息

1TXT數(shù)據(jù)存放數(shù)據(jù)格式

1,-1,281.931,187.466,79.93,209.537,0.997784,-1,-1,-1
1,-1,56.6878,144.225,93.5572,295.907,0.997601,-1,-1,-1
1,-1,378.618,188.922,166.431,234.127,0.995973,-1,-1,-1
1,-1,203.983,207.153,45.553,133.834,0.985409,-1,-1,-1

(抽取單個目標(biāo)展示)

幀號 目標(biāo)ID x y w h 準(zhǔn)確度

1,-1,291.557,192.468,39.494,119.227,0.995128,-1,-1,-1

(雖然看起來很亂,而且沒有換行,但是程序按照行讀取還是能分開??? )

程序功能:

1 讀取原txt

2 存到另一個txt里面

3 解析其中的數(shù)據(jù)

這里的解析沒有用到字符串分割等,而是利用了istringstream對象直接將不同類型的數(shù)據(jù)導(dǎo)給不同的變量。

istringstream對象解析的簡單示例

#include <iostream>
#include <sstream>
 
using namespace std;
 
int main()
{
  istringstream istr;
  istr.str("1 56.7");
  //上述兩個過程可以簡單寫成 istringstream istr("1 56.7");
  cout << istr.str() << endl;
  int a;
  float b;
  istr >> a;
  cout << a << endl;
  istr >> b;
  cout << b << endl;
  return 0;
}

  上例中,構(gòu)造字符串流的時(shí)候,空格會成為字符串參數(shù)的內(nèi)部分界,例子中對a,b對象的輸入"賦值"操作證明了這一點(diǎn),字符串的空格成為了整型數(shù)據(jù)與浮點(diǎn)型數(shù)據(jù)的分解點(diǎn),利用分界獲取的方法我們事實(shí)上完成了字符串到整型對象與浮點(diǎn)型對象的拆分轉(zhuǎn)換過程。

工程代碼:

#include <windows.h>
#include <fstream>
#include <iostream>
#include <string>
 
#include "opencv2/video/tracking.hpp"
#include "opencv2/highgui/highgui.hpp"
 
using namespace std;
using namespace cv;
 
typedef struct TrackingBox
{
  int frame;
  int id;
  Rect_<float> box;
}TrackingBox;
 
 
 
 
/*
1TXT數(shù)據(jù)存放數(shù)據(jù)格式
1,-1,281.931,187.466,79.93,209.537,0.997784,-1,-1,-1
1,-1,56.6878,144.225,93.5572,295.907,0.997601,-1,-1,-1
1,-1,378.618,188.922,166.431,234.127,0.995973,-1,-1,-1
1,-1,203.983,207.153,45.553,133.834,0.985409,-1,-1,-1
(抽取單個目標(biāo)展示)
幀號 目標(biāo)ID x y w h 準(zhǔn)確度
1,-1,291.557,192.468,39.494,119.227,0.995128,-1,-1,-1
 
*/
void TXTtoBOX() {
  string inFileName = "det.txt";
  string outFileName = "out.txt";
 
  ifstream myfile(inFileName);
  ofstream outfile(outFileName, ios::app); //ios::app指追加寫入
 
 
  if (!myfile.is_open())
  {
    cerr << "Error: can not find file " << inFileName << endl;
    return;
  }
  if (!outfile.is_open())
  {
    cerr << "Error: can not find file " << outFileName << endl;
    return;
  }
 
  string detLine;//存放讀取出的單個目標(biāo)信息
  istringstream ss;
  vector<TrackingBox> detData;
  char ch;//存放逗號,沒有實(shí)際用處,去除數(shù)據(jù)間的逗號
  float tpx, tpy, tpw, tph;
 
  while (getline(myfile, detLine)) //按行讀取字符串
  {
    TrackingBox tb;
    ss.str(detLine);
    ss >> tb.frame >> ch >> tb.id >> ch;// ch用來存放逗號
    ss >> tpx >> ch >> tpy >> ch >> tpw >> ch >> tph;
    ss.str("");//清空后面不管
 
    tb.box = Rect_<float>(Point_<float>(tpx, tpy), Point_<float>(tpx + tpw, tpy + tph));
    detData.push_back(tb);
 
    outfile << detLine << endl;//寫文件
    cout <<"detLine:"<< detLine << endl;
    cout << "x:"<<tpx << "  y:"<< tpy << " w:" << tpw << " h:" << tph <<endl;
 
  }
  myfile.close();
  outfile.close();
  while (1);
 
 
}
int main()
{
  TXTtoBOX();
   
  return 0;
}

運(yùn)行之后

重新按行存放輸出到out.txt

解析

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言求素?cái)?shù)的幾種方式總結(jié)

    C語言求素?cái)?shù)的幾種方式總結(jié)

    這篇文章主要介紹了C語言求素?cái)?shù)的幾種方式總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • C語言中設(shè)置進(jìn)程優(yōu)先順序的方法

    C語言中設(shè)置進(jìn)程優(yōu)先順序的方法

    這篇文章主要介紹了C語言中設(shè)置進(jìn)程優(yōu)先順序的方法,包括setpriority()函數(shù)和getpriority()函數(shù)以及nice()函數(shù),需要的朋友可以參考下
    2015-08-08
  • 關(guān)于C++中vector的兩個小tips分享

    關(guān)于C++中vector的兩個小tips分享

    這篇文章主要給大家介紹了關(guān)于C++中vector的兩個小tips,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • VC++實(shí)現(xiàn)的OpenGL線性漸變色繪制操作示例

    VC++實(shí)現(xiàn)的OpenGL線性漸變色繪制操作示例

    這篇文章主要介紹了VC++實(shí)現(xiàn)的OpenGL線性漸變色繪制操作,結(jié)合實(shí)例形式分析了VC++基于OpenGL進(jìn)行圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • C++數(shù)據(jù)結(jié)構(gòu)繼承的概念與菱形繼承及虛擬繼承和組合

    C++數(shù)據(jù)結(jié)構(gòu)繼承的概念與菱形繼承及虛擬繼承和組合

    今天我要給大家介紹C++中更深入的內(nèi)容了。C++這門語言為了使代碼不冗余,做了些什么操作呢?C++的繼承就很好地實(shí)現(xiàn)了類層次的代碼復(fù)用,今天我就要來和大家好好聊一聊它了
    2022-02-02
  • 解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法

    解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法

    這篇文章主要介紹了解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C++中opencv4.1.0環(huán)境配置的詳細(xì)過程

    C++中opencv4.1.0環(huán)境配置的詳細(xì)過程

    這篇文章主要介紹了C++中opencv4.1.0環(huán)境配置的詳細(xì)過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • C++深入講解哈夫曼樹

    C++深入講解哈夫曼樹

    給定N個權(quán)值作為N個葉子結(jié)點(diǎn),構(gòu)造一棵二叉樹,若該樹的帶權(quán)路徑長度達(dá)到最小,稱這樣的二叉樹為最優(yōu)二叉樹,也稱為哈夫曼樹(Huffman Tree)。哈夫曼樹是帶權(quán)路徑長度最短的樹,權(quán)值較大的結(jié)點(diǎn)離根較近
    2022-05-05
  • C指針原理教程之C快速入門

    C指針原理教程之C快速入門

    C語言作為大學(xué)編程或者計(jì)算機(jī)專業(yè)的一門必修課,把很多初學(xué)編程的小伙伴都難住了,感覺無從下手,今天呢,我們來簡單介紹下,如何快速入門C語言
    2019-02-02
  • C++實(shí)現(xiàn)LeetCode(51.N皇后問題)

    C++實(shí)現(xiàn)LeetCode(51.N皇后問題)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(51.N皇后問題),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論

舒城县| 克拉玛依市| 庐江县| 北票市| 射阳县| 恩平市| 柳州市| 金坛市| 织金县| 丹寨县| 襄城县| 西吉县| 额尔古纳市| 马尔康县| 郸城县| 泊头市| 漳浦县| 平舆县| 基隆市| 吉安县| 郴州市| 隆德县| 泰安市| 淮南市| 广东省| 渝北区| 陕西省| 东平县| 西吉县| 昔阳县| 敖汉旗| 安化县| 陕西省| 澄江县| 泾源县| 乌恰县| 巧家县| 浮梁县| 周宁县| 图们市| 新乐市|