内存中有一片缓冲区,对于cin来讲,从输入设备输入的数据先放在缓冲区,当遇到回车键时,程序从缓冲区提取数据送给有关变量。输入数据的终止符(单个数据)有空格、回车、Tab键。
对于cout来讲,当缓冲区满了或者遇到endl,就将缓冲区的全部数据送到显示器显示。
#include
#include
#include
using namespace std;
int main()
{
/************输入输出****************/
//标准输入输出
int a[20];
char ch[30], mv[30];
char myc[] = "i love china.i have a book ?";
char* pc = myc;
//字符读入
cout << "请输入两个英文句子" << endl; //i love nuaa. i love china.i have a book?
//使用cin读入
cin >> ch >> ch;
cout << "cin:" << ch << endl; //l1 只能输出一个字符
//无参读入单字符
ch[1] = cin.get();
ch[2] = cin.get();
//一参读入单字符
cin.get(ch[3]); //第二中写法
cout << "get():" << ch << endl; //l2
string S1;
//两参读入多字符。默认遇到/n结束
cin.get(ch, 5);
cout << ch << endl; //l3
//三参读入多字符
cin.get(ch, 5, '.');
cout << ch << endl; //l4
cout << "请再次输入" << endl;
cin.clear();
cin.ignore(numeric_limits< std::streamsize>::max(),'\n'); //清空缓存区当前行
//读入一行字符
cin.getline(mv, 5);
cout << mv << endl; //l5
cin.getline(mv, 5,'.');
cout << mv << endl; //l6
//字符输出
cout.put('o').put(*myc).put(*(myc + 1)).put(*(myc + 2)).put('\n');
cout.write(myc, 3).write(myc, 5).put('\n');
cout.write("this is", 7).write(myc, size(myc)).put('\n');
return 0;
}
(20条消息) C++编程——cin、getline()、get()_cin结束标志_sxr__nc的博客-CSDN博客https://blog.csdn.net/sxr__nc/article/details/105318570
连续读取缓冲区数据时会跳过空格、回车、Tab键,用这些终止符作为单位变量的数据分隔符
连续读取缓冲区数据时会跳过指定符号(默认回车键),多个字符赋给字符数组。
带参数的getline支持连续调用:
cin.getline(a,5).getline(a,5,'/')
输读取缓冲区数据时全部读取,不会跳过特殊字符。单个字符赋给字符变量、多个字符赋给字符数组。
cin.get(a,5).get(a,5,'/')
cout.put(a).put(b);
cout.write(ch,4).write(mv,6);
数据文件包括:
(1)ASCII文件:也叫文本文件或字符文件,每个字节放一个字符。
(2)二进制文件:数据按照存储形式来输出。如一个字符文件占7bit,而不是1字节。当数据从内存送入显示器显示时,将内存中的二进制数据转为ASCII字符,再按照不同的数据类型输出到显示器上。
#include
#include
#include
using namespace std;
int main()
{
/************文件读写****************/
int temp = 10;
char red[50];
const char* str = "myLeearntest.txt";
char str2[] = "17栋男生宿舍by 井宇 .txt";
string s1;
//文本文件的读写
fstream afile;
afile.open(str, ios::out); //默认以文本格式打开,写
if (!afile) {
cerr << "打开失败";
exit(0);
}
afile <> red>>red>>red; //读
cout << red<