sstream头文件

sstream头文件之前的sscanf和sprintfsscanf函数原型为intsscanf(constchar*str,constchar*format,…),将参数str的字符串根据参数format字符串来转换并格式化数据,转换后的结果存于对应的参数内;#include<iostream>#include<cstdio>usingnamespacestd;i…

大家好,又见面了,我是你们的朋友全栈君。

之前的sscanf和sprintf
sscanf函数原型为int sscanf(const char *str,const char *format,…),将参数str的字符串根据参数format字符串来转换并格式化数据,转换后的结果存于对应的参数内;

#include <iostream>
#include <cstdio>
using namespace std;

int main(){ 
   
	char s[] = "123.432,432";
	double f1;
	int f2;
	int n;
	sscanf_s(s, "%lf,%d%n", &f1, &f2, &n);
	cout << f1 << " " << f2 << " " << n << endl;

	system("pause");
	return 0;
}

sstream头文件
sprintf函数原型为 int sprintf(char *str, const char *format, …),作用是格式化字符串;

void sprintf() { 
   
	char str[256] = { 
    0 };
	int data = 1024;
	//将data转换为字符串
	sprintf_s(str, "%d", data);
	cout << str << endl;

	//获取data的十六进制
	sprintf_s(str, "0x%X", data);
	cout << str << endl;

	//获取data的八进制
	sprintf_s(str, "0%o", data);
	cout << str << endl;

	const char *s1 = "Hello";
	const char *s2 = "World";
	//连接字符串s1和s2
	sprintf_s(str, "%s %s", s1, s2);
	cout << str << endl;
}

sstream头文件
sstream
sstream定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作

  • 可以将内容写入其中,和cout一样
stringstream ss;
    double price = 380.0;
    char *ps = " for a copy of the ISO/EIC C++ standard!";
    ss.precision(2);//精度
    ss << fixed;//固定位数
    ss << "Pay only CHF " << price << ps << endl;
    cout << ss.str() << endl;//将缓冲区的内容转化为字符串
  • 它可以拼接字符串(不同数据类型)
  • 可以从中读取数据,和cin一样:
string word;
while(ss>>word){ 
   
    cout << word << endl;
    }
  • 利用stringstream可以轻松完成字符串和基本数据类型的相互转换
	string s = "12345";
	stringstream ss;
	int x;
	ss << s;
	ss >> x;
	cout << x << endl;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136123.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Git branch && Git checkout常见用法

    Git branch && Git checkout常见用法

    2021年10月20日
  • VRR的工作流程及G-sync和Freesync的区别

    VRR的工作流程及G-sync和Freesync的区别VRR的工作流程可以分为三个阶段,第一个阶段是帧率低于刷新率,第二个阶段是帧率接近刷新率,但是没有超过刷新率,第三个阶段是帧率超过刷新率。理想状态应该是第二个阶段,显卡的输出帧稳定,并且略小于显示器的刷新率,这样显示器有足够的时间去安排VBlank的时间,这时候垂直同步开与不开,几乎没有任何的区别,你的画面不可能发生撕裂。并且显卡是全程在不断的更新画面的,画面不存在滞后的现象,几乎不会产生延迟,这个便是理想状态的G-sync和Freesync,但是如果帧率高于显示器的刷新…

  • Frp内网穿透

    Frp内网穿透Frp内网穿透​ 内网穿透从本质上来讲也是端口映射,两者都是将内网地址映射到公网可访问的地址,而区别是端口映射直接在路由器中配置即可,而内网穿透配置的端口映射则需要客户端和服务端进行绑定后实现,相当于客户端和服务端之间建立了一条隧道,然后访问服务端的请求会通过隧道转发给内网主机,该情况多用于没有公网IP的情况下使用;​ frp是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持tcp,udp,http,https等协议类型,可以将内网服务以安全、便捷的方式通过具有公网

  • jQuery 模板 tmpl 用法「建议收藏」

    jQuery 模板 tmpl 用法「建议收藏」昨晚无意中发现一个有趣的jQuery插件.tmpl(),其文档在这里。官方解释对该插件的说明:将匹配的第一个元素作为模板,render指定的数据,签名如下:.tmpl([data,][options])其中参数data的用途很明显:用于render的数据,可以是任意js类型,包括数组和对象。options一般情况下都是

  • android scaleanimation动画,Android 的ScaleAnimation 缩放动画基本运用

    android scaleanimation动画,Android 的ScaleAnimation 缩放动画基本运用因为今天用到了ScaleAnimation缩放动画就写一下,加深一下印象。用ScaleAnimation有几个重载方法,这里就将八个参数的重载方法。ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYV…

    2022年10月16日
  • 面试题:线程池处理流程 没用

    面试题:线程池处理流程 没用

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号