STL6-输入输出流

cout 是 console output 缩写

程序 和键盘 之间有一个输入缓冲区

程序 和 显示器 之间有一个输出缓冲区

 

#include<iostream>
#include<windows.h>
#include<iomanip>
using namespace std;
#if 0
cout << "dd"; //全局流对象,默认和显示器关联
cin;
cerr; //标准错误 没有缓冲区  输出数据到显示器
clog;  //标准日志 有缓冲区 输入数据到显示器 
#endif//标准输入流 cin.get()从缓冲区取数据,若是没有则阻塞
void test01() {//char ch;//while ((ch = cin.get())!=EOF) {  //EOF结束符:Ctrl+Z   //	cout << ch << endl;//}//cin.getchar ch2;//cin.get(ch2);  //读取一个字符char buf[256] = { 0 };//cin.get(buf, 256); //从缓冲区读一个字符串cin.getline(buf, 256);  //获得一行数据不会读取换行符,\n之前的数据cout << buf;
}//cin.ignore() 忽略当前字符
void test02() {char ch;cin.get(ch);  从缓冲区读数据, 为空阻塞cout << ch << endl;cin.ignore(); //忽略当前字符,从缓冲区取走cin.ignore(2); //忽略几个字符cin.ignore(10, '\n'); //若前十个都没有字符都没有\n,则忽略十个,只有在10个之前发现\n,则都不忽略cin.get(ch);cout << ch << endl;
}//cin.peek  查看缓冲区第一个字符
void test03() {cout << "please input array or string:" << endl;char ch;ch=cin.peek();  //偷窥一下缓冲区,返回第一个字符if(ch >= '0' && ch <= '9'){int number;cin >> number;cout << "input number" << number << endl;}else {char buf[256] = { 0 };cin >> buf;cout << "the string is:" << buf << endl;}
}//cin.putback将数据拿回到缓冲区  cin.get从缓冲区拿走数据
void test04() {cout << "please input string or number:" << endl;char ch;cin.get(ch);  //从缓冲区取走一个字符if (ch >= '0' && ch <= '9') {//ch放回到缓冲区cin.putback(ch);int number;cin >> number;cout << "input the number" << number << endl;}else {cin.putback(ch);char buf[256] = { 0 };cin >> buf; //将buf存入输入流中cout << "input the string"<<buf << endl;}
}//标准输出流
//endl 有两个作用:1.换行 2.刷新缓存区 
//不加endl大多数情况下,也能正常输出,
//是因为在系统较为空闲时候,会查看缓存区的内容,如果发现新的内容,便进行输出。
void test05() {cout << "hello world"<<endl;cout.flush();cout.put('h').put('e').put('l') << endl;cout.write("zhaosi",strlen("zhaosi"));
}//格式化输出
void test06() {int number = 10;cout << "十进制" << endl;cout << number << endl;//1、成员方法的方式cout.unsetf(ios::dec);  //卸载当前默认的10进制输出方式cout.setf(ios::oct);  //八进制输出cout.setf(ios::showbase);cout << "八进制" << endl;cout << number << endl;cout.unsetf(ios::oct);cout.setf(ios::hex);cout << "十六进制" << endl;cout << number << endl;cout << "输出控制宽度" << endl;cout.width(10);cout.fill('*');cout.setf(ios::left); //左右对齐cout << number << endl;//2、通过控制符int number2 = 10;cout << hex << setiosflags(ios::showbase)<< setw(10)  //宽度<< setfill('~')<<setiosflags(ios::right)<< number2 << endl;
}
int main(){test06();return 0;
}

#include<iostream>
using namespace std;
#include<fstream>  //文件读写
//文本文件读写
void test01() {//ifstream ism;//ism.open("source.txt", ios::in);ifstream ism("source.txt",ios::in); //只读方式打开文件,文件流(管道)//ofstream osm("target.txt", ios::out); //清除后复制ofstream osm("target.txt", ios::out | ios::app);  //以追加的方式复制if (!ism) {  //!肯定重载cout << "open file fail" << endl;return;}//读文件char ch;while (ism.get(ch)) {cout << ch;osm.put(ch);  //往流里增加数据}//关闭文件ism.close();osm.close();
}//二进制文件操作 对象序列化
class Person {
public:Person(){}Person(int age,int id):age(age),id(id){}void show() {cout << "Age:" << age << "id:" << id << endl;}
public:int age;int id;
};void test02() {//文本模式读的是文本文件吗?      都是二进制方式存储windows:\r\n-->\n linux:\n-->\n//二进制模式读的是二进制模式吗?  是Person p1(10, 20), p2(30, 40);  //p1和p2是以二进制的方式存在程序中//把p1 和 p2写进文件中ofstream osm("target对象.txt",ios::out | ios::binary);  osm.write((char*)&p1, sizeof(Person));   //二进制方式写文件osm.write((char*)&p2, sizeof(Person));osm.close();ifstream ism("target对象.txt", ios::in | ios::binary);Person p3,p4;ism.read((char*)&p3, sizeof(Person));ism.read((char*)&p4, sizeof(Person));p3.show();p4.show();ism.close();
}int main()
{test02();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu nginx+uwsgi部署Django项目

前提条件&#xff1a;首先项目使用一下命令启动成功后&#xff0c;输入公网ip后可以启动成功 python manage.py runserver 0.0.0.0:80 一、阿里云配置安全组 添加8000端口 二、安装配置uwsgi 1、确定django项目可以正常运行了&#xff0c;ctrlc停止项目&#xff0c;下面我们来…

STL7-基础

1、容器可以嵌套容器 2、容器分为序列式容器和关联式容器 序列式容器&#xff1a;容器的元素的位置是由进入容器时机和地点来决定 关联式容器&#xff1a;容器已经有规则&#xff0c;进入容器的元素的位置不是由进入容器时机和地点来决定 只与此容器的排列规则有关 3、迭代…

java 假设当前时间_Java中与日期和时间相关的类和方法

一、currentTimeMillis()方法System 类中的方法 currentTimeMillis() 方法可以返回从 GMT1970 年 1 月 1 日 00 : 00 : 00 开始到当前时刻的毫秒数。System.currentTimeMillis(); //返回值为long类型二、Date类1.构造方法(1)public Date (); 以当前系统时间创建一个Date对象&am…

STL8-string容器

C 没有 string 类&#xff0c;但提供了直接对字符数组、字符串操作的函数 -> 如 str_len()等等 -> 需要包含 “string.h”#include<iostream> #include<string> using namespace std;//初始化 void test01() {string s1; //调用无参构造string s2(10, a);str…

java 采集 cms_开源 java CMS - FreeCMS2.3 Web页面信息采集

Web页面信息采集从FreeCMS 2.1开始支持通过简单配置即可抓取目标网页信息&#xff0c;支持增量式采集、关键字替换、定时采集&#xff0c;同一采集规则可采集多个页面(静态和动态)&#xff0c;可采集多种信息属性&#xff0c;可自动审核且静态化信息页面。采集规则管理从左侧管…

Python中reshape函数参数-1的意思?

import numpy as np c np.array([[1,2,3],[4,5,6]]) print(2行3列) print(c.reshape(2,3)) print(3行2列) print(c.reshape(3,2)) print(我也不知道几行&#xff0c;反正是一列) print(c.reshape(-1,1)) print(我也不知道几列&#xff0c;反正是一行) print(c.reshape(1,-1)) …

STL9-vector容器

vector容器 动态数组 可变数组 vector容器 单口容器 vector实现动态增长&#xff1a; 当插入新元素时&#xff0c;如果空间不足&#xff0c;那么vector会重新申请更大内存空间&#xff08;默认二倍&#xff09;&#xff0c;将原空间数据拷贝到新空间&#xff0c;释放旧空…

函数返回值失效

#include<stdio.h> #include<stdlib.h> #include<string.h> #if 1 char* getMen2() {char buf[64]; //临时变量&#xff0c;栈区存放strcpy(buf, "abccddeeff");printf("buf:%s\n", buf);return buf; //此处并不是把内存块64个字节ret…

mysql突然出现慢sql_Mysql开启慢SQL并分析原因

第一步.开启mysql慢查询方式一:修改配置文件Windows&#xff1a;Windows 的配置文件为 my.ini&#xff0c;一般在 MySQL 的安装目录下或者 c:\Windows 下。Linux&#xff1a;Linux 的配置文件为 my.cnf &#xff0c;一般在 /etc 下在 my.ini 增加几行:[mysqlld]long_query_time…

STL10-deque容器

deque 双端队列 deque 删除操作 deque案例&#xff1a; #if 1 #include<iostream> #include<deque> using namespace std; void PrintDeque(deque<int>& d) {for (deque<int>::iterator it d.begin(); it ! d.end(); it) {cout << *it <…

STL11-stack容器

#if 1 #include<iostream> #include<stack> using namespace std;void test01() {//初始化stack<int> s1;stack<int> s2(s1);//stack操作s1.push(10);s1.push(20);s1.push(30);s1.push(40);cout << "栈顶元素&#xff1a;" << e…

java犀牛是什么意思_深入浅出Rhino:Java与JS互操作

2011年10月6日&#xff0c;一年一度的JavaOne大会隆重举行。JavaOne2011大会的主题之一介绍针对不同Java平台的产品路线图&#xff0c;这其中包括移动版(ME&#xff0c;Micro Edition)、标准版(SE&#xff0c;Standard Edition)以及企业版(EE&#xff0c;Enterprise Edition)。…

STL12-queue容器

queue容器 队列容器 先进先出 队列只能在一端插入 一端删除 队列不能遍历 不提供迭代器 不支持随机访问 #if 1 #include<iostream> #include<queue> using namespace std; void test01() {queue<int> q; //创建队列queue<int> q2(q);q.push(10);q.pu…

Leedcode7-binary-tree-postorder-traversal

#include<iostream> #include<vector> #include<stack> using namespace std; // Definition for binary tree 先序遍历 根左右 struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; #if 0 c…

用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识

用tensorflow搭建RNN(LSTM)进行MNIST 手写数字辨识 循环神经网络RNN相比传统的神经网络在处理序列化数据时更有优势&#xff0c;因为RNN能够将加入上&#xff08;下&#xff09;文信息进行考虑。一个简单的RNN如下图所示&#xff1a; 将这个循环展开得到下图&#xff1a; 上一…

RNN入门

雷锋网 AI科技评论按&#xff1a;本文作者何之源&#xff0c;原文载于知乎专栏AI Insight&#xff0c;雷锋网(公众号&#xff1a;雷锋网) AI科技评论获其授权发布。 上周写的文章《完全图解RNN、RNN变体、Seq2Seq、Attention机制》介绍了一下RNN的几种结构&#xff0c;今天就来…

Java二进制小数表示_《Java编程的逻辑》笔记9--小数的二进制表示

小数计算为什么会出错&#xff1f;简要答案实际上&#xff0c;不是运算本身会出错&#xff0c;而是计算机根本就不能精确的表示很多数&#xff0c;比如0.1这个数。计算机是用一种二进制格式存储小数的&#xff0c;这个二进制格式不能精确表示0.1&#xff0c;它只能表示一个非常…

『TensorFlow』模型保存和载入方法汇总

一、TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类&#xff0c;.save(sess, ckpt文件目录)方法 参数名称功能说明默认值var_listSaver中存储变量集合全局变量集合reshape加载时是否恢复变量形状Truesharded是否将变量轮循放在所有设备上Truemax_to_keep保留最近检…

STL13-list容器(链表)

链表是由一系列的结点组成&#xff0c;结点包括两个域&#xff1a;一个数据域&#xff0c;一个指针域 1、链表内存是非连续的&#xff0c;添加删除元素效率较高&#xff0c;时间复杂度都是常数项&#xff0c;不需要移动元素 2、链表只有在需要的时候才会分配内存 3、链表只要…

php 前往页面,PHP实现网页截图?

如何使用PHP实现网页截图PHP实现网页截图是一个在日常开发中不常见的需求&#xff0c;但是如果实现还是非常有意思的。目前业界有很多成熟的方案&#xff0c;下面我推荐使用一个很稳定的第三方服务来直接实现&#xff0c;该服务有如下特点&#xff1a;支持多线路支持登录截图支…