C++每日一练(I/O)
来源:互联网 发布:苹方字体 mac版下载 编辑:程序博客网 时间:2024/05/16 16:58
一、今日课题
I/O
二、实战演练
大多数计算机语言的输入输出的实现都是以语言本身为基础的,但是C/C++没有这样做。C语言最初把I/O留给了编译器实现人员。这样做的一个原因是可以提供足够的自由度,使之最适合目标机器的硬件条件。但是大多数实现人员都将I/O建立在了Unix库函数中,之后C才将该库引入了C标准中,被C++继承了下来。
但是C++也有自己的I/O解决方案,将其定义于iostream和fstream中。这两个库不是语言的组成部分,只是定义了一些类而已。
C++把输入和输出看作字节流。对于面向文本的程序,一个字节代表一个字符。流充当了源于目标之间的桥梁,因此对流的管理包含两个方面:从哪里来,到哪里去。其中,缓冲区作为临时存储空间,可以提高流处理的速度。
C++中专门定义了一些类来管理流和缓冲区:
C++98定义了一些模板类,用以支持char和wchar_t类型;
C++ 11添加了char16_t和char32_t类型(实则就是一些typedef来模拟不同的类型)。
1)有何用?
iostream库自动定义了一些标准对象:
cout, ostream类的一个对象,可以将数据显示在标准输出设备上.
cerr, ostream类的另一个对象,它无缓冲地向标准错误输出设备输出数据.
clog, 类似cerr,但是它使用缓冲输出.
cin, istream类的一个对象,它用于从标准输入设备读取数据.
fstream库允许编程人员利用ifstream和ofstream类进行文件输入和输出.
2)怎么用?
///C++ I / O操作——简单文件加密#include <iostream>#include<fstream>#include <string>using namespace std;int main(){ string str; char buffer[256]; int psw, a; cout << "encode or decode ? if encode, please input 1 else decode input 2 :" << endl; // encode or decode ? cin >> a; cout << "please input the psw:" << endl; // input psw cin >> psw; if (a == 2) psw = 0 - psw; cout << "please input the filename of source...." << endl; // input source file cin >> str; fstream outfile(str.c_str(), ios::in); cout << "please input the filename of destinity...." << endl; // input destiny file cin >> str; ofstream outtxt(str.c_str(), ios::ate | ios::out); while (!outfile.eof()) // process { cout << "222" << endl; outfile.getline(buffer, 256, '\n'); cout << buffer << endl; for (int i = 0; i < strlen(buffer); i++) //algorithm of encode or decode buffer[i] = buffer[i] + psw; outtxt << buffer << endl; } outfile.clear(); outfile.close(); return 0;}
3)Access & Operations
三、C++树
10/14/2016 3:49:44 PM
0 0
- C++每日一练(I/O)
- 每日一练(20171019)
- 每日一练(20171020)
- 每日一练(20171019)
- 每日一练(20171020)
- c语言每日一练5
- c语言每日一练6
- c语言每日一练7
- 【20170924】C语言每日一练
- 【20170926】C语言每日一练
- 【20170927】C语言每日一练
- 【20170928】C语言每日一练
- 【20170929】C语言每日一练
- 【20171009】C语言每日一练
- 【20171010】C语言每日一练
- 【20171012】C语言每日一练
- 【20171015】C语言每日一练
- 【20171019】C语言每日一练
- Java冒泡排序
- iOS真机调试-徐明伟
- 放大镜效果
- centos6.5 安装 ecshop
- Android实践 -- 设置系统日期时间和时区
- C++每日一练(I/O)
- Android 代码片段
- android中图片的存储规则建议
- 润乾报表分页
- synchronized run()方法的问题
- 使用JMAP dump及分析dump文件
- 人脸识别
- 在滞回比较器中,运算放大器工作在哪个区?
- js中的浏览器(Navigator)