C++cin&cout细节

一、念念不忘之Hello World.

作为一个程序员,我们第一个程序总会是它。对不对。那么在C++中我们是不是也常常会看到这么一段。

然后我们将这段代码使用helloword.cpp 文件保存起来。并且放入到G盘的code目录中。注意在这里我们可以使用如下命令查看当前文件夹的文件信息.

我的目录结构如下图所示:

最后我们代码的编译执行结果如下:

上述案例我们最简单的使用了一下cout 对象进行输出。那么cout具体是做什么的呢。cout其实是c++中的一个标准的输出流。那么在C++中我们如何像C语言中那样使用printf实现各种格式化输出呢。

1.数字的进制输出 :

1) 在C++中要实现进制输出。我们需要调用cout对象的std::cout.unsetf() 函数解绑十进制输出。再调用cout.setf()函数绑定其他进制输出 。创建一个hexinc++.cpp代码文件。加入如下代码:

然后编译执行代码,我们得到如下结果:

2) 除了使用这种方式。我们还可以使用c++给我们提供的 iomanip 头文件进行进制的格式化输出。
现在我们创建代码文件hexioman.cpp 文件。加入如下代码:

然后编译、执行。最终得到如下结果:

可见得到的结果是一致的。而且使用起来更加简介方便。

2.通常再输出的时候,除了对整数的进制处理。我们还需要对一些小数的输出做大小的限制。

1.再这里我们首先还是使用 setf
/ usetf 来实现。 我们创建文件decimal.cpp.加入如下内容:

然后编译执行。我们得到如下结果:

2) 当然有些时候我们需要结连续输出,那么这种情况下我们应该怎么办呢。我们先来看看如下代码:

编译执行之后得到如下结果:

由此可以看到,我们导入 iomanip,然后使用setiosflags 、resetiosflags、setprecision这些函数来实现。

二、在前边的篇幅中,我们主要关注了C++中的输出对象cout. 那么现在我们回过头来,如果我们需要输入数据到程序中又该如何呢。现在我们来关注一下cin这个对象。

首先我们要知道的是cin是C++中的标准输入流。好了,我们来看看最基本的用法。创建一个cinsimple.cpp。然后加入如下代码:

然后我们编译执行。最终得到如下结果:

这是最基本的cin的用法。那么注意这里和scanf 函数的区别。在这里我们接收输入时不需要加入引用符号&。
那么cin这个对象还有没有其他的用法呢。看官请继续,我们创建一个cinstr.cpp
的代码文件。加入如下代码,接收输入的字符串:

然后我们编译执行程序如下:

我们发现输入的字符串中,空格后边的内容被去掉了。因为cin对象接收输入的时候会以空格为中断。

好了,在本篇笔记中。我们介绍了C++中的输出对象与输入对象。输出对象最主要关注的是数字的进制输出、浮点数的格式化输出。输入对象需要注意两点。第一点是输入的时候不要使用引用符&。第二点是cin的输入会以空格为中断。

老九学堂出品

原文地址:https://www.cnblogs.com/ljxt/p/11613132.html

时间: 2024-11-07 01:40:49

C++cin&cout细节的相关文章

scanf printf gets() puts(),cin cout

最近在练机试题,常用的C和C++输入输出如下: 1 scanf 和printf int a; scanf("%d",&a) ; printf("%d",a); printf("\n"); double b;scanf("%"); char c; scanf("%c",&c);printf("%c",c); long int a; scanf("%ld"

acdream B - 郭式树 (水题 卡cin,cout, 卡LL)

题目 输入正好是long long的最大, 但是答案超long long 所以用unsigned, 不能用cin cout否则一定超时: 不能用abs(), abs 只用于整数. unsigned   int   0-4294967295   int   2147483648-2147483647 unsigned long 0-4294967295long   2147483648-2147483647long long的最大值:9223372036854775807long long的最小值

892B. Wrath#愤怒的连环杀人事件(cin/cout的加速)

题目出处:http://codeforces.com/problemset/problem/892/B 题目大意:一队人同时举刀捅死前面一些人后还活着几个 #include<iostream> #define IO ios::sync_with_stdio(false);\cin.tie(0);\cout.tie(0); using namespace std; typedef __int64 LL; const int maxn = 2e6+10; int p[maxn]; //库中有max

如何提高cin/cout的速度

如何提高cin/cout的速度 写在前面 在无数的算法比赛中,不难看到下面这样的东西: ios::sync_with_stdio(false); 甚至是这样的东西: ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); 现在,尽量用"\n"替换可以替换的endl .(考虑流输出) 好了,以上就是我目前知道的技巧. 为什么 [ref] sync_with_stdio(), tie()的应用 sync_

九度cin/cout耗时原因

做九度题的时候,由于数据量大,很多情况下得用scanf和printf代替cin和cout用于输入输出,不然会报错超时不能AC. 有三条建议用于提高C++的输入输出速度: At the first line in main function,add :std::ios_base::sync_with_stdio(false).which cancel theSynchronization between <iostream> and <cstdio>; At the second l

C++输入输出常用格式(cin,cout,stringstream)

输入格式 1.cin>>a; 最基本的格式,适用于各种类型.会过滤掉不可见字符例如空格,TAB,回车等 2.cin>>noskipws>>ch[i]; 使用了 noskipws流控制,不会过滤空白字符 3.cin.get(ch); 或 ch = cin.get(); 接收一个字符,类似于getchar(); 4.cin.getline(s,k); 接收一行中k个字符,可以接收空格 cin.getline()实际有三个参数,cin.getline(字符串,接收个数,结束字

加速C++ cin,cout的速度

用以下两行代码: ios::sync_with_stdio(false); //加速 cin.tie(0); 首先sync_with_stdio(false)是为了打断iostream输入输出到缓存,可以节约很多时间,使之与scanf相差无几. tie是将两个stream绑定的函数,空参数的话返回当前的输出指针,即tie(0)与tie(nullptr)来解决cin与cout的绑定. 原文地址:https://www.cnblogs.com/Bella2017/p/11519670.html

PAT甲级 1028 List Sorting (25分)(cin cout 超时问题)

注意: 用scanf 和printf 进行输入输出 否则超时 cin,cout速度慢的原因就是它会将数据先读入缓冲区,然后再读入,所以与scanf的直接读入会有点时间差距. 1.换成scanf 和 printf输入输出 2.加一条语句 ios::sync_with_stdio(false); 题目代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algori

C++读取数据 cin cout 关闭同步

1 #include <iostream> 2 int main() 3 { 4 5 std::ios::sync_with_stdio(false); 6 std::cin.tie(0); 7 std::cout.tie(0); 8 9 return 0; 10 } 打了一场CF的比赛,感觉自己啥都不会,只能看看神犇的代码,开始学习. 作为一个不怎么熟悉C语言的输入的我,在用cin和cout的时候,常常听别人说cin和cout的速度要比scanf和printf要慢. 但今天看了这位神犇的代码