C++提高 10(标准输入,输出流,文件io流)

1.标准输入流

#include<iostream>
using namespace std;

void main01()
{
	int a;
	long b;
	char c[100];

	
	cin >> a;
	cin >> b;
	//cin的这种输入流遇到空格本次录入结束;
	cin >> c;

	cout << "a:" << a << "b:" << b << "C:" << c << endl;
	system("pause");
}

void main02()
{
	char c;

	//这里会先接受键盘录入,放入缓存区;一次取一个进行打印;
	//enter进行循环取出打印,取不到阻塞;ctrl+z 就是结束符EOF;结束循环;
	while ((c=cin.get())!=EOF)
	{
		cout << c << endl;
	}
	system("pause");
}

void main03()
{
	char a, b, c;
	//键盘录入先录入到缓冲区的;
	cin.get(a);//从缓冲区取出一个字符赋值给a,然后缓冲区中就没有了;
	cin.get(b);
	cin.get(c);
	cout << a << b << c << endl;

	cin.putback(a);//这种是又放回到缓冲区中去;
	cin.putback(b);
	cin.putback(c);

	system("pause");
}

void main04()
{
	char a[100];
	char b[100];

	//从键盘录入数据包含空格,进入缓冲区,当遇到第一个空格的之前的内容赋值给a;
	//cin.getline()会读取缓冲区后面的内容包换空格赋值给b;
	cin >> a;
	cin.getline(b,100);
	cout << a << "---" << b << endl;
	system("pause");
}

void main()
{
	char a[100];
	char b[100];

	//从键盘录入数据包含空格aa  bbccdd,进入缓冲区,当遇到第一个空格的之前的内容赋值给a;
	//cin.ignore()忽略函数;
	cin >> a;
	
	cin.ignore(2);//忽略(跳过)两个字符;
	int a = cin.peek();//都去忽略后或者跳过后的第一个字符的阿斯克码值;读不到的话会阻塞在这里;
	cin.getline(b, 100);
	cout << a << "---" << b << endl;
	system("pause");
}


2.标准输出:

#include<iostream>
using namespace std;

void main()
{
	//cout.put('h').put('e');//put只能放一个字符进入输出流;
	//cout << "llo" << endl;

	//char* p = "hello world";
	//cout.write(p, strlen(p)) << endl;//输出p指针;返回一个引用
	//cout.write(p, strlen(p)-4) << endl;//输出结果:hello w;
	//cout.write(p, strlen(p)+4) << endl;//输出结果:hello world????;这个操作是比较危险的;可能会崩掉可能会乱码;


	cout << "<start>";
	cout.width(30);//输出长度为30;
	cout.fill('*');//输出长度不够的用*填充
	cout.setf(ios::showbase);//以16进制输出
	cout << hex << 1234 << "<End>" << endl;//输出1234的16进制
	//输出结果:<start>*************************0x4d2<End>
	system("pause");
}




3.文件io

#include<iostream>
#include<fstream>
using namespace std;


void main()
{
	char* fname = "C:/test.txt";
	//ios::in 可以不写默认就是in,其他类型看下面的表格;
	ofstream fout(fname,ios::in);//建立输出流和文件相关;没有文件的话创建文件;
	if (!fout)
	{
		cout << "文件打开失败" << endl;
	}
	fout << "hello0001" << endl;
	fout << "hello0002" << endl;
	fout.close();

	ifstream fin(fname);//建立输入流和文件相关联;
	char ch;
	while (fin.get(ch))
	{
		cout << ch;
	}
	fin.close();
	system("pause");
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值