ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++读取文件,把字符串按“空格”分成若干个字符串

2021-11-27 23:02:59  阅读:184  来源: 互联网

标签:1341846313.686172 读取 rgb C++ depth 字符串 1341846313.686156 buf png


文件形如:

1341846313.592026 rgb/1341846313.592026.png 1341846313.592088 depth/1341846313.592088.png
1341846313.654184 rgb/1341846313.654184.png 1341846313.654212 depth/1341846313.654212.png
1341846313.686156 rgb/1341846313.686156.png 1341846313.686172 depth/1341846313.686172.png

代码

#include<iostream>  //cin  cout
#include<fstream>  //ifstring ofstream
#include<string>   //string
#include<sstream>  //istringstream
#include<vector>   //vector

using namespace std;
int main(int atgc, char **argv)
{
	ifstream fin;  //1、实例化一个ifstream对象
	fin.open(argv[1]);  //2、关联文件
	/*
	ifstream fin(filename);  //等同于1+2
	*/

	将把内容原样输出到屏幕**********************************************
	char ch;
	while(fin.get(ch)) 
	{
		cout<<ch;
	}
	fin.close();  //断开流与文件的连接,流还在
	cout<<endl;
	//**********************************************************************

	//fin 以空格,tab,换行 为结束标志读取****************************************
	fin.open(argv[1]);
	string buf;
	fin>>buf;  //读一个字符串,遇到空格就结束
	cout<<"buf = "<<buf<<endl;
	fin>>buf;  //读一个字符串,遇到空格就结束
	cout<<"buf = "<<buf<<endl;
	fin>>buf;  //读一个字符串,遇到空格就结束
	cout<<"buf = "<<buf<<endl;
	fin>>buf;  //读一个字符串,遇到空格就结束
	cout<<"buf = "<<buf<<endl;
	fin.get(ch);  //剩了个换行,读掉,扔了,如果是fin.get(ch),就给了ch
	cout<<ch;
	//**********************************************************************

	//getline(fin,VAR_string)读一行****************************************
	string line;
	getline(fin,line);  //读一行,从开始到行尾
	cout<<"line = "<<line<<endl;
	getline(fin,line);  //读一行,从开始到行尾
	cout<<"line = "<<line<<endl;
	cout<<"length of line = "<<line.length()<<endl<<endl;
	fin.close();
	//********************************************************************

	vector<string> str;
	string word;
	
	//把字符串按照空格分割成若干个
	//******************************************************************
	istringstream devide(line);
	while(devide>>word)
	{
		str.push_back(word);
	}
	//*******************************************************************
	vector<string>::iterator pd;  //迭代器
	for(pd=str.begin();pd!=str.end();pd++)
	{
		cout<<*pd<<endl;
	}
		

	ofstream fout;
	fout.open("write.txt");
	fout<<"下面是写入的内容:";


	fout.close();

	return 0;
}

输入形如

wfq@wfq-xiaoxin:~/MyProjects/CFiles/build$ ./file_read_write ../associations.txt
1341846313.592026 rgb/1341846313.592026.png 1341846313.592088 depth/1341846313.592088.png
1341846313.654184 rgb/1341846313.654184.png 1341846313.654212 depth/1341846313.654212.png
1341846313.686156 rgb/1341846313.686156.png 1341846313.686172 depth/1341846313.686172.png

buf = 1341846313.592026
buf = rgb/1341846313.592026.png
buf = 1341846313.592088
buf = depth/1341846313.592088.png

line = 1341846313.654184 rgb/1341846313.654184.png 1341846313.654212 depth/1341846313.654212.png
line = 1341846313.686156 rgb/1341846313.686156.png 1341846313.686172 depth/1341846313.686172.png
length of line = 89

1341846313.686156
rgb/1341846313.686156.png
1341846313.686172
depth/1341846313.686172.png

标签:1341846313.686172,读取,rgb,C++,depth,字符串,1341846313.686156,buf,png
来源: https://blog.csdn.net/qq_41253960/article/details/121585143

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有