VS2017调试问题集锦


title: 字符串和数字的转换,输出格式
tags: string,int,setprecision
grammar_cjkRuby: true

保留有效位数

setprecision()

包含的头文件——#include

#include<iostream>
#include<stdio.h>
#include<iomanip>
#include "stdlib.h"
using namespace std;
int main(){
   //保留有效数字
    double PI=3.1415926;
    cout<<setprecision(3)<<PI<<endl;

	//保留小数点后几位
	double a=100;
    cout<<setiosflags(ios::fixed)<<setprecision(3)<<a<<endl;
	
	//格式化输出(01) 
	int a=1;
    cout.setf(ios::right);
    cout.fill('0');   //不够宽度的填充物,这里为‘0’
    cout.width(2);   // 输出的宽度
    cout<<a<<endl;       
	printf("%2d",PI);
    system("pause");
    return 0;
}

[外链图片转存失败(img-PP02E5B8-1564575349508)(./images/1531818747215.png)]

  1. 保留有效数字

  2. setprecision(3)

  3. 保留小数点后几位问题

在setprecision() 前添加setiosflags(ios::fixed)

3、格式化输出(01)

cout.setf(ios::right);
cout.fill('0');
cout.width(2);

输出结果屏幕闪退

  1. 在main() 函数return 0之前添加 system(“pause”); (需包含头文件"stdlib.h")
  2. main() 函数return 0之前添加 getchar()

多个文件共享同一头文件时全局变量的声明

https://blog.csdn.net/u011594482/article/details/51023881

字符串输入

遇空字符(包括空格、回车、TAB)表示一个输入的结束,连续的空字符会被忽略。
https://blog.csdn.net/zhulf0804/article/details/52016118
https://blog.csdn.net/qq_32512643/article/details/52914473
cin
1.cin>>
1.以空格,回车,换行分隔
2.如果第一个为上述“分隔符”,cin会自动忽略并清除,等待数据继续输入
3.cin>>noskipws>>input可以不略过空白字符
2.cin.get
A.读取一个字符 不忽略分隔符
a=cin.get();cin.get(a);
B.读取一整行
cin.get(a,size);遇到分隔符是结束
Note:
只能将字符串读入c风格的字符串中,即char*类,而getline类型可以读入c++风格字符串,即string类
3.cin.getline
a=cin.getline(a,size)遇到分隔符结束
实际只能读取size-1个数据
与cin.get()唯一区别为,前者不会将分隔符留在缓冲区中
4.cin.clear()
清空输入数据时的异常状态,使接下来的数据正常输入
5.Cin.ignore()
Cin.ignore(1024,’\n’)第一个参数通常要求为非常大的整数,实际上只有\n在起作用,就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。
Note:
如果cin.ignore()不给参数,则默认参数为cin.ignore(1,EOF),即把EOF前的1个字符清掉,没有遇到EOF就清掉一个字符然后结束,会导致不正确的结果
6.getline
getline(cin,a)getline遇到结束符时,会将结束符一并读入指定的string中,再将结束符替换为空字符,所以用getline较为安全
与cin.getline()类似,前者属于istream流,后者属于stirng流

String输入
即用上述的cin和读入即可getline
为了输入的快速,防止超时,可以使用scanf读入数据,后再赋值给string

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值