量化交易之C++篇 - 标准输入输出流、文件的读写操作

这篇博客详细介绍了C++中的标准输入输出流,包括cin.get(), cin.getline(), cin.ignore(), cin.peek()和cin.putback()的使用方法。同时,展示了如何进行文件的读写操作,包括ofstream用于写文件和ifstream用于读文件的实例。通过对这些函数和对象的理解,可以更好地掌握C++中输入输出和文件处理的能力。
摘要由CSDN通过智能技术生成
// 标准输入流
#include <iostream>
#include <string>

using namespace std;

// cin.get(): 读取 字符
void test01() {
	char c = cin.get(); // 读取1个字符
	cout << "c = " << c << endl;

	c = cin.get(); // 再读下1个字符
	cout << "c = " << c << endl;
}

//  cin.get(): 读取 字符串
void test02() {
	char buffer[1024];

	cin.get(buffer, 1024); // 按长度 读取 字符串
	cout << "buffer: " << buffer << endl;
}

// cin.getline(): 读取字符串(连同换行符一并读取, 并扔掉)
void test03() {
	char buffer[1024];
	cin.getline(buffer, 1024); // cin.getling() 把换行符读取, 并扔掉;

	char c = getchar();

	cout << "buffer:" << buffer << endl;

	if (c == '\n') {
		cout << "缓存区还有 1个 回车" << endl;
	} else {
		cout << "已清空缓存区" << endl;
	}
}

// cin.ignore(): 忽略字符
void test04() {

	cin.ignore(); // 没有参数 代表忽略一个字符; 带参数N: 代表忽略N个字符;
	char c = cin.get();

	cout << "c = " << c << endl;
}

// cin.peek(): 偷窥函数
void test05() {

	char c = cin.peek(); // 偷看一下当前的字符, 然后再放回缓冲区
	cout << "c = " << c << endl;

	c = cin.get();
	cout << "c = " << c << endl;
}

// cin.pubback() 放回
void test06() {
	char c = cin.get();
	cin.putback(c);

	char buffer[1024];
	cin.getline(buffer, 1024);
	cout << "buffer: " << buffer << endl;
}


// 判断用户输入的是字符串还是数字?
void test07() {
	cout << "请输入一串数字或字符串" << endl;

	char peek = cin.peek();

	if (peek >= '0' && peek <= '9') {

		int number;
		cin >> number;

		cout << "输入的是数字: " << number << endl;
	} else {

		char buffer[1024];
		cin >> buffer;

		cout << "输入的是字符串: " << buffer << endl;
	}
}


int main() {

	//test01();

	//test02();

	//test03();

	//test04();

	//test05();

	//test06();

	//test07();
	

	return EXIT_SUCCESS;
}
// 标准输出流
#include <iostream>
#include <string>
#include <iomanip> // 使用控制符的头文件

using namespace std;

void test01() {
	cout.put('a').put('b');
}

void test02() {
	char buffer[1024] = "hello world";
	cout.write(buffer, strlen(buffer));
}

// 使用流对象成员函数
void test03() {
	int number = 99;
	cout.width(20); // number 在终端上占20个长度;
	cout.fill('*'); // 空位符 用 * 号占用;
	cout.setf(ios::left); // 文本向左对齐;

	cout << number << endl;
}

// 使用控制符的方式显示
void test04() {
	int number = 99;
	cout << setw(20) << setfill('*') << setiosflags(ios::left) << number << endl;
}

int main() {

	//test01();

	//test02();

	//test03();

	test04();

	return EXIT_SUCCESS;
}
// 文件的读写操作
#include <iostream>
#include <string>
#include <fstream> // 文件读写头文件

using namespace std;

// 写文件
void test01() {
	ofstream ofs;
	ofs.open("./test.txt", ios::out | ios::trunc);

	if (!ofs.is_open()) {
		cout << "打开失败" << endl;
	}

	ofs << "姓名: abc" << endl;
	ofs << "年龄: 100" << endl;
	ofs << "姓名: abc" << endl;
}


// 读文件
void test02() {
	ifstream ifs;
	ifs.open("./test.txt", ios::in);

	// 判断是否打开成功
	if (!ifs.is_open()) {
		cout << "打开失败" << endl;
	}

	// 第一种方式
	char buffer[1024];

	while (ifs >> buffer) // 按行读取
	{
		cout << buffer << endl;
	}
}


int main() {

	//test01();

	test02();

	return EXIT_SUCCESS;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值