C++简单文件输入输出
C++提供了一系列的方法,使得将读取键盘输入和在屏幕上显示输出(统称为控制台输入/输出)的技巧用于文件输入/输出(文件I/O)非常简单,具体如下文:
文本I/O和文本文件
使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。
也就是说——不管目标的数据类型是什么,输入一开始都是字符数据——文本数据。然后,cin对象负责将文本转换为其他类型。
看以下几种情况:
// 输入为字符时
char ch;
cin >> ch;
这种情况下,输入行为:38.5
输入和目标变量都是字符,因此不需要转换。
需要注意的是:
①这里存储的3,是字符3的编码。
②执行完上述语句后,输入队列的下一个字符为字符8,下一个输入操作将对其进行处理
// 输入为int类型时
int n;
cin >> n;
这种情况下,cin将不断读取,直到遇到非数字字符。
它读取3和8,并将句点留在队列中。cin通过计算发现,这两个字符对应数值38,因此将38的二进制编码复制到变量中。
// 输入为int类型时
double x;
cin >> x;
这种情况下,cin将不断读取,直到遇到不属于浮点数的字符。即空格。
cin通过计算发现,这四个字符对应于数值38.5,因此将38.5的二进制编码复制到变量x中。
// 输入为int类型时
char word[50];
cin >> word;
这种情况下,cin将不断读取,直到遇到空白字符。不需要进行任何转换。
cin将字符的字符编码存储到数组中,并在句末加上一个空字符。
// 输入为int类型时
char word[50];
cin.getline(word,50);
这种情况下,cin将不断读取,直到遇到换行符。所有字符都被存储到word中,并在末尾加一个空字符。
换行符被丢弃(不留在队列中),输入队列的下一个字符是下一行中的第一个字符。
写入文本文件
先看一段代码:
// 输入为int类型时
#include <iostream>
#include <fstream> //for file I/O
using namespace std;
int main()
{
char automobile[50];
int year;
double a_price;
double d_price;
ofstream outFile;