我是靠谱客的博主 现代电脑,最近开发中收集的这篇文章主要介绍c/c++中输入输出处理 按分隔符(换行、逗号、空格等)读取1、中提供的getline()函数2、中提供的getline()函数 ,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
读取输入中字符流的常用函数为getline,其有两种实现:
1、<istream>中提供的getline()函数
istream& getline (char* s, streamsize n);
istream& getline (char* s, streamsize n, char delim);
调用的时候直接 cin.getline() 。
2、<string>中提供的getline()函数
istream& getline (istream& is, string& str, char delim);
istream& getline (istream&& is, string& str, char delim);
istream& getline (istream& is, string& str);
istream& getline (istream&& is, string& str);
注:getline默认按行读取,不含换行符。
下面列出一些使用示例代码。
①读取一行
#include <iostream>
char szbuf[128] = {0};
while(cin.getline(szbuf, 128))
cout << szbuf << endl;
gets、cin.getline读取一行数据,遇换行结束读取。
②读取输入,遇空格结束
#include <iostream>
#include <string>
string str1, str2;
while(cin >> str1 >> str2) //循环读入多行,每行两个字符串,中间空格分隔
scanf、cin都是读取输入,遇空格结束。
③读取一行后,以空格分隔读取各个子串
#include <iostream>
#include <string>
#include <sstream>
string str_line;
getline(cin, str_line)
stringstream ss(str_line);
string str_tmp;
while(ss >> str_num)
cout << str_tmp;
这里使用sstream提供的stringstream类,默认可以按空格分隔读取字符串。
④读取一行字符串后,以逗号分隔读取各个子串
#include <iostream>
#include <string>
#include <sstream>
string str_line;
while(getline(cin, str_line))
{
stringstream ss(str_line);
string str_tmp;
set<string> s_sorted_str;
while(getline(ss, str_tmp, ','))
cout << str_tmp;
}
⑤从文件中按行读取,打印以逗号为分隔的每个字符串
#include <iostream>
#include <fstream>
#include <sstream>
ifstream in_file("data.txt");
string str_line;
while(getline(in_file, str_line, ','))
{
string str_tmp;
stringstream ss(str_line);
while (ss >> str_tmp)
cout << str_tmp << " ";
}
in_file.close();
最后
以上就是现代电脑为你收集整理的c/c++中输入输出处理 按分隔符(换行、逗号、空格等)读取1、
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复