C++中的IO流[通俗易懂]

(43) 2023-07-09 17:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说C++中的IO流[通俗易懂],希望能够帮助你!!!。

标准输入流(头文件为iostream)

char ch = cin.get();// 一次读取一个字符,如果遇到EOF则结束。
cin.getline(buf, length);// 一次读取一行数据,包含空格,默认的cin>>是不包含空格的。
cin.getline(buf, length, '\n');//一次读取一行数据,包括空格,回车键结束

代码演示:

#include <iostream>
using namespace std;
int main()
{
  /*cin.get()获取一个字符*/
  char ch = ' ';
  cout << "输入字符: " << endl;
  while ((ch = cin.get()) != '\n')
  {
    cout << ch;
  }
  cout << endl;
  
  /*cin.getline:获取输入的一行数据,遇到空格也会接收进来,与cin不同,cin的>>遇到空格停止*/
  char buffer[256];
  cout << "输入buffer内容: " << endl;
  cin.getline(buffer, 256, '\n');
  cout << buffer << endl;
	
  cout << "cin>>输入:" << endl;
  cin >> buffer;
  cout << buffer << endl;
	
  /*cin的缓冲区测试:第一次空格全面是cin>>读取的,第一个空格后面是cin.getline()读取的*/
  char buf1[256] = " ";
  char buf2[256] = " ";
  cout << "输入buf1: " << endl;
  cin >> buf1;
  cout << buf1 << endl;
  cin.getline(buf2, 256);
  cout << buf2 << endl;
  return 0;
}

标准输出流(头文件为iostream)

cout.put(char);// 输出一个基本数据类型,支持链式编程。
cout.write(char *,length);// 输出一个指定长度的字符串。

代码演示:

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
  cout.put('A').put('B').put('C').put('\n');
  cout.write("HelloWorld\n", 20);
  return 0;
}

文件输出流 (头文件在fstream)

open(fileName,mode);// 以指定方式打开文件,但是平时我们是直接在构造方法中这样打开
close();// 关闭文件
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
  cout << "Please Enter Code: " << endl;
  char buffer[256] = " ";
  /*获取一行数据*/
  cin.getline(buffer, 256);
  /*定义输出文件流,并输出方式打开该文件*/
  ofstream out("a.dat", ios::out);
  /*通过文件输出流将控制台数据输入到文件中*/
  out << buffer;
  /*关闭文件*/
  out.close();
  return 0;
}

文件输入流(头文件在fstream)

open(fileName,mode);// 以指定方式打开文件,但是平时我们是直接在构造方法中这样打开
close();// 关闭文件
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
  ifstream inFile("a.dat", ios::in);
  char ch = ' ';
  while (inFile.get(ch))
  {
    cout << ch;
  }
  /*关闭文件*/
  inFile.close();
  return 0;
}

上一篇

已是最后文章

下一篇

已是最新文章

发表回复