// 标准输入流
#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;
}