C/C++格式化输入,输出

1.C语言

1. 语言函数

scanf();
printf();
sscanf() --> 不安全
sscanf_s() ---> 安全
sprintf() --> 不安全 ----> sprintf_s()

2. 说下遇到的坑

string s1,s2;
int i=0;
sscanf(dest,"%d,%s,%s",&i,s1,s2); // -->如果时这样写的会 编译可以会过,但是在运行的时候就会出现异常。
/*
所以在写的时候就要写C语言的类型,char* 其次该函数是不安全的函数,所以在使用的时候使用```sscanf_s()```,
sprintf()函数也是一样的问题,应该使用sprintf_s()函数
*/

2.C++

  1. 利用stringstream 流进行处理,安全

    • stringstream 中包含

      + istringstream (输入)

      + ostringstream(输出)
  2. stringstream 流出时遇到 逗号,回车时问题
	string s = "1 1.3 aaa a ";
string s1 = "abc,1,abcdef,abcdefg,aab";
stringstream ss;
ss << s;
int ia = 0;
double db = 0.0;
string sc = "";
char cd = ' '; ss >> ia;
cout << "ia -> " << ia << endl; ss >> db;
cout << "db -> " << db << endl; ss >> sc;
cout << "sc -> " << sc << endl; ss >> cd;
cout << "cd -> " << cd << endl; ss.clear();
cout << "*****************************" << endl; ss << s1;
//ss >> sc;
//cout << sc << endl;
while(ss >> sc) {cout << sc << endl;}

结果:

3.利用stringstream类型转换

可以把任意类型转换成字符串

	template<class T>
void to_string(string & s;T &val)
{
stringstream ss << val;
s = ss.str();
}

4.C++格式化

  1. cin >> noskipws -- > 不忽略任意地方空格
  2. hex控制输出的格式,默认为dec(十进制),可手动设置dec,hex,oct。
  3. setiosflags 为控制格式,ios::uppercase 为输出大写十六进制格式,也可以省略setiosflags直接写uppercase.一共有7种格式
        setiosflags(ios::fixed)  //---> 固定的浮点显示
setiosflags(ios::scientific) //--- 指数表示
setiosflags(ios::left) //---左对齐
setiosflags(ios::right) //---右对齐
setiosflags(ios::skipws) //--- 忽略前导空白
setiosflags(ios::uppercase) //--- 16进制数大写输出
setiosflags(ios::lowercase) //---16进制数小写输出

C/C++格式化输入,输出的更多相关文章

  1. 《C语言程序设计现代方法》第3章 格式化输入/输出

    完整的细节将留到第22章中介绍. 调用printf函数一次可以打印的值的个数没有限制. 注意:C语言编译器不会检查格式串中转换说明的数量是否和输出项的数量相互匹配,也不会检查转换说明是否适合要显示项的 ...

  2. 重学C语言---04字符串和格式化输入/输出

    1.程序示例 //talkback.c一个能为你提供一些信息的对话框 #include <stdio.h> #include <string.h> //提供strlen函数原型 ...

  3. java 日期的格式化 输入/输出

    想要得到形如2018.07.09的格式化好的当天日期 创建Date对象,调用SimpleDateFormat对象的format方法: indexstr="logstash-"+ne ...

  4. C Primer Plus学习笔记(三)- 字符串和格式化输入/输出

    从一个简单的例子开始 #include <stdio.h> int main() { char name[10]; printf("Input Your Name:\n" ...

  5. C Primer Plus 第4章 字符串和格式化输入/输出 编程练习

    1. #include <stdio.h> int main(void) { ]; ]; printf("请输入您的名字: "); scanf("%s&quo ...

  6. C-字符串和格式化输入\输出

    1.字符串是一个或多个字符序列.字符串常量用双引号括起来“abc”,字符常量用单引号括起来‘’. 2.数组是同一类型的数据元素的有序序列.数据元素在内存中是连续存储的. C中没有为字符串定义专门的变量 ...

  7. 【C语言学习】《C Primer Plus》第4章 字符串和格式化输入/输出

    学习总结 1.String str=”hello world!”;(Java),char[20]=” hello world!”;(C).其实Java字符串的实现,也是字符数组. 2.字符串的尾部都会 ...

  8. (Go)06. Printf格式化输出、Scanf格式化输入详解

    Print.Println .Printf .Sprintf .Fprintf都是fmt 包中的公共方法,在需要打印信息时需要用到这些函数,那么这些函数有什么区别呢? Print: 输出到控制台(不接 ...

  9. Python笔记_第一篇_面向过程_第一部分_4.格式化输入和输出

    开始Python编程首先要学习两类最常用(经常出现和使用)输入和输出.学习编程最重要的状态就是“人机交互”,所以这两类函数显得尤其重要. 第一部分 格式化输入 1.1   函:input 语:inpu ...

随机推荐

  1. 如何配置MYSQL的MASTER---SLAVE复制备份?

    如何配置MYSQL的MASTER---SLAVE复制备份? 一.配置一个mysql服务器做master:     在配置文件my.ini中添加如下内容: log-bin=matster-binlog- ...

  2. ASP.NET Core开发Docker部署

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  3. bzoj 1370 Gang团伙

    题目大意: 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,满足 1. 我朋友的朋友是我的朋友 2. 我敌人的敌人是我的朋友 所有是朋友的人组成一个团伙 告诉你关于这n个人的m条信息,即某两个 ...

  4. bzoj 2067 [ Poi 2004 ] SZN —— 二分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2067 问题1:贪心考虑,应该是每个点的儿子尽量两两配对,如果剩一个就和自己合并向上,所以 a ...

  5. ibwebrtc-audio-processing-devel

    http://ftp.ussg.iu.edu/cygwin/x86_64/release/webrtc-audio-processing/libwebrtc-audio-processing-deve ...

  6. 17.EXTJs 中icon 与iconCls的区别及用法!

    转自:https://blog.csdn.net/u013890437/article/details/38315717?utm_source=blogxgwz7

  7. 清北考前刷题day5早安

    /* C(n,k) */ #include<iostream> #include<cstdio> #include<cstring> #define ll long ...

  8. Django day 36 支付宝支付,微信推送

    一:支付宝支付, 二:微信推送

  9. C#命名空间 using的用法

    using的用法: 1. using指令:引入命名空间 这是最常见的用法,例如: using System; using Namespace1.SubNameSpace; 2. using stati ...

  10. (二)Mybatis总结之通过Dao层与数据交互

    Mybatis概述 定义: Mybatis是一个支持普通sql查询,存储过程和高级映射的优秀持久层框架. Mybatis是(半自动的)跟数据库打交道的orm(object relationship m ...