广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++输入和输出流的示例分析
  • 867
分享到

C++输入和输出流的示例分析

2023-06-29 08:06:33 867人浏览 八月长安
摘要

这篇文章给大家分享的是有关c++输入和输出流的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。输入和输出流从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。从磁盘文件输入数据

这篇文章给大家分享的是有关c++输入和输出流的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    输入和输出流

    从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。

    从磁盘文件输入数据,数据输出到磁盘文件简称文件I/O。

    对内存中指定的空间进行输入输出,通常指定一个字符数组作为存储空间(存储任何信息),称为字符串输入输出,简称为串I/O

    C++输入和输出流的示例分析

    缓冲区:无论是输入还是输出都是存在缓存区的。

    标准输入流

    常用的成员函数

    1,cin.get()获取一个字符

    char c = cin.get();

    使用cin.get()可以家当缓冲区中的换行符拿走。注意返回值是什么类型的,拿走的数据再输出的时候就是什么类型。

    2,cin.get(两个参数)获取字符串

    参数是字符串数组名和个数

    使用cin.get(两个参数)那字符串的时候,换行符\0会遗留在缓冲区中。

    char buf[100] = {0};cin.get(buf, 100);cout << buf<< endl;

    只满足字符数组,且输出的字符个数总比第二个参数少1.(原因:字符数组最后一个字符是不可见字符&rsquo;\0&rsquo;)

    3,cin.getline()获取字符串

    接收一个字符串并输出

    和cin.get(两个参数)相似,不会将换行符加入字符串,但是也不会留在缓冲区中,而是直接扔掉。

    char buf[100] = {0};cin.getline(buf, 100);cout << buf << endl;

    可以有第三个参数,就是终止位置(一个字符,不包括这个字符)

    4,cin.ignore()忽略一个字符

    括号中可以填入参数,参数就是忽略字符的个数。默认是一个。

    cin.ignore();char c = cin.get();//abcout << c << endl;//b,将a忽略了

    5,cin.peak()偷窥

    char c = cin.peek();cout << c << endl;//achar m = cin.get();cout << m << endl;//a

    缓冲区中,输入了一个a,然后cin.peek()只是看了一眼,并没有拿走,所以调用cin.get()的时候可以直接从缓冲区中拿。

    6,cin.putback()放回(原来的位置)

    char c = cin.get();cin.putback(c);//将从缓冲区拿走的字符返回原位置char buf[100] = { 0 };cin.getline(buf, 100);//接收的是缓冲区中的字符串,输出的对象是buf这个字符数组。 cout << buf << endl;

    输入hello,输出仍是hello。

    小案例

    案例一:判断输入的内容是字符串还是数字(不存在混合的情况)

    int main(){cout << "请输入一个数字或者一个字符串" << endl;char c = cin.peek();if (c >= '0' && c <= '9'){cout << "数字" << endl;int num;cin >> num;cout << num << endl;}else{cout << "字符串" << endl;char buf[100] = { 0 };cin >> buf;cout << buf << endl;}return 0;}

    案例二:

    用户输入0-10之间的数字,如果输入有误,重新输入。

    int main(){cout << "请输入一个0-10之间的数字" << endl;while(true){int num;cin >> num;if (num >= 0 && num <= 10){cout << "输入正确,输入的值为: " << num << endl;break;}else{cout << "输入有误,请重新输入" << endl;}}return 0;}

    如果输入的是一个数字,那么一切正常。但是如果输入字符,那么就是陷入死循环。这个时候就是缓存区出现了问题。

    所以,如果没有输入正确,那么可以进行清空缓存区和重置标志位。(这个标志位如果是0表示缓冲区正常,1就是不正常)

    cin.clear();//清空缓冲区cin.sync();//重置标志位cin.ignore();//帮助清空2013版本以上需要加。//上面三句话连着使用。cin.fail();//标志位

    标准输出流

    1,cout.put(),向缓冲区写一个字符

    括号里面是啥,就打印啥。

    可以拼接使用:cout.put(&lsquo;h&rsquo;).cout.put(&lsquo;a&rsquo;);//打印结果就是:ha

    2,cout.write(两个参数),

    两个参数是char* ,和 对应字符串的长度(不能超过最大长度)。从字符串中拿走规定长度的内容输出。

    char arr[] = "hello";cout.write(arr, strlen(arr));//hello

    但是如果要全部打印的话,直接使用cout<<arr<<endl;也是可以的。优点应该是可以打印规定长度的字符串。

    格式化输出:

    (1) 通过流成员函数 格式化输出

    int main(){int num = 99;cout.width(5);//指定宽度为20(向前面加空格),结果:   99cout.fill('*');//空格处都填充上*,结果:***99,(填充内容会被下一此的填充内容覆盖)cout.setf(iOS::left);//输出的文本左对齐,结果99***    cout.unsetf(ios::dec);//卸载十进制cout.setf(ios::hex);//安装十六进制,结果为63***cout.setf(ios::showbase);//显示基数,结果0x63*。输出对应进制的基数,16进制就是0xcout.unsetf(ios::hex);//卸载十六进制cout.setf(ios::oct);//安装八进制,结果为0143*。cout << num << endl;return 0;}

    (2) 使用控制符 格式化输出

    如果使用控制符格式化输出的话,需要引用头文件

    #include<iomanip>

    指定宽度:

        int number = 110;cout << setw(20)//指定宽度为20,然后默认将数据右对齐<< number<< endl;//运行结果:                 110

    填充:

        int number = 110;cout << setw(20)<< setfill('*')//填充,位置在前在后无所谓<< number<< endl;//运行结果:*****************110

    显示基数:

    int number = 110;cout << setw(20)<< number<< setfill('*')<< setiosflags(ios::showbase)//显示基数<< endl;//运行结果:*****************110,和上面的没有区别,因为十进制是没有基数的。

    设置左对齐:

    int number = 110;cout << setw(20)<< setfill('*')<< setiosflags(ios::showbase)<< setiosflags(ios::left)//设置左对齐<< number<< endl;//运行结果:110*****************//这个时候需要注意一下,如果按照刚才将number写在前面的时候是得不到想要的结果的,所以应该将最终要输出的内容尽量写在右边。

    显示十六进制:

    int number = 110;cout << setw(20)<< setfill('*')<< setiosflags(ios::showbase)<< setiosflags(ios::left)<< hex//显示16进制<< number<< endl;//运行结果:0x6e****************

    文件读写

    写文件:

    需要引头文件:#include<fstream>(文件流)

    感谢各位的阅读!关于“C++输入和输出流的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    --结束END--

    本文标题: C++输入和输出流的示例分析

    本文链接: https://www.lsjlt.com/news/323712.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • C++输入和输出流的示例分析
      这篇文章给大家分享的是有关C++输入和输出流的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。输入和输出流从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。从磁盘文件输入数据...
      99+
      2023-06-29
    • Java中输入/输出流体系的示例分析
      这篇文章主要介绍Java中输入/输出流体系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java输入/输出流体系1.字节流和字符流字节流:按字节读取。字符流:按字符读取。字符流读取方便,字节流功能强大,当不...
      99+
      2023-05-30
      java
    • Java IO中字节输入输出流的示例分析
      这篇文章主要介绍Java IO中字节输入输出流的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!讲的是字节输入输出流:InputStream、OutputSteam(下图红色长方形框内),红色椭圆框内...
      99+
      2023-06-26
    • C++的输入和输出流详解
      目录输入和输出流标准输入流小案例标准输出流文件读写总结输入和输出流 从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。 从磁盘文件输入数据,数据输出到...
      99+
      2022-11-13
    • 如何解析C++中IO流的输入输出流
      本篇文章为大家展示了如何解析C++中IO流的输入输出流,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。介绍流: 若干字节数据从一端到另一端我们叫做流例如:操作文件,从程序到文件,数据的流动的操作称为流...
      99+
      2023-06-22
    • C++输入流和输出流 超级详细
      目录1、简单介绍2、C++输入流和输出流1、简单介绍 C++ 又可以称为“带类的 C”,即可以理解为 C++ 是 C 语言的基础上增加了面向对象(类和对象)。在此基础上,学过 C 语...
      99+
      2022-11-12
    • JAVA语言输入输出流的示例代码
      这篇文章主要介绍了JAVA语言输入输出流的示例代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。public class IOStreamDemo {   &nbs...
      99+
      2023-06-03
    • C++ stringstream格式化输出输入分析
      这篇文章主要讲解了“C++ stringstream格式化输出输入分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++ stringstream格式化输出输入分析”吧!目录最近在笔试时经...
      99+
      2023-06-25
    • java管道piped输入流与输出流应用场景案例分析
      目录前言原理简介使用场景概述实际应用案例一:EXCEL文件导出功能案例二:XML文件数据传输结语前言 PipedInputStream 和 PipedOutputStream 设计用...
      99+
      2022-11-13
    • JAVA语言的输入输出流详解(c)
      详解b中的例子,详解[@more@]  1. BufferedReader是Reader的一个子类,它具有缓冲的作用,避免了频繁的从物理设备中读取信息。它有以下两个构造函数:BufferedReader(Reader in) Buffere...
      99+
      2023-06-03
    • C++的输入与输出和格式化输出
      目录一、C++ 输入与输出 格式化输出1.cin与cout2.格式化输出2.1设置域宽及位数2.2按进制输出2.3设置填充符总结一、C++ 输入与输出 格式化输出 1.cin与cou...
      99+
      2022-11-12
    • Ajax技术中servlet末尾输出流的示例分析
      这篇文章主要介绍Ajax技术中servlet末尾输出流的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Ajax的服务器端用PrintWriter out=resp.getWr...
      99+
      2022-10-19
    • Flink 侧流输出源码示例解析
      目录Flink 侧流输出源码解析源码解析TimestampedCollector#collectCountingOutput#collectBroadcastingOutputCol...
      99+
      2022-11-13
    • 解读torch.nn.GRU的输入及输出示例
      目录一、输入到GRU的参数①input的shape②h_0的shape二、GRU返回的数据①output②h_n三、代码示例四、输出总结我们有时会看到GRU中输入的参数有时是一个,但...
      99+
      2023-01-28
      torch.nn.GRU输入 torch.nn.GRU输出
    • C++标准输入输出流指的是什么
      C++标准输入输出流(Standard Input/Output Stream)是C++标准库提供的一组用于输入和输出的类和对象。它...
      99+
      2023-09-20
      C++
    • C++中简单的文本文件输入/输出示例详解
      为了便于理解,我们把cout 用于控制台输出时的一些情况和写入到文本文件的情况进行类比: cout 控制台输出 包含头文件 iostream 头文件 iostream 定义了一个 o...
      99+
      2022-11-12
    • C语言输出孪生素数的实现示例分析
      今天就跟大家聊聊有关C语言输出孪生素数的实现示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.题目内容:孪生素数是指间隔为 2 的相邻素数,例如最小的孪生素数对是3和5,5和...
      99+
      2023-06-26
    • Java输入输出IO、NIO和AIO对比分析
      这篇文章主要讲解了“Java输入输出IO、NIO和AIO对比分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java输入输出IO、NIO和AIO对比分析”吧!1、Java I/O发展史&n...
      99+
      2023-07-06
    • Scss编译输出风格的示例分析
      这篇文章主要介绍Scss编译输出风格的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!很多人从使用Scss的那一刻起,就被别人告诉了如何编译。所以,基本上也就只会一种命令编译方...
      99+
      2022-10-19
    • python语言中流程的输入与输出案例
      这篇文章将为大家详细讲解有关python语言中流程的输入与输出案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。流程中的输入,一般都会先保存在变量(即内存)中,而这个输入,可以来自于键盘(也称为标准输入)...
      99+
      2023-06-19
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作