notas de estudio de c ++ quince: operaciones de archivo

Los datos generados cuando el programa se está ejecutando son datos temporales y se publicarán una vez que finalice el programa.

Los datos se pueden conservar a través de archivos

Las operaciones de archivo en C ++ deben incluir archivos de encabezado <fstream>

Hay dos tipos de archivos:

  1. Archivo de texto: el archivo se almacena en la computadora en forma de código ASCII de texto
  2. Archivos binarios: los archivos se almacenan en la computadora en forma binaria de texto , y los usuarios generalmente no pueden leerlos directamente

Hay tres categorías principales de archivos operativos:

  1. ofstream: operación de escritura
  2. ifstream: operación de lectura
  3. fstream: operaciones de lectura y escritura

1. Archivo de texto

1. Escribir archivos

Los pasos para escribir archivos son los siguientes:

  1. Incluir archivo de encabezado

    #include <fstream>

  2. Crear un objeto de flujo

    ofstream ofs;

  3. abre un archivo

    ofs.open ("ruta de archivo", método de apertura);

  4. Escribir datos

    ofs << "Datos escritos";

  5. Cerrar el archivo

    ofs.close ();

Método de apertura de archivos:

Método abierto Explicación
ios :: en Abrir archivo para leer
ios :: fuera Abrir archivo para escribir
ios :: comió Posición inicial: fin de archivo
ios :: aplicación Escribir archivo en modo anexar
ios :: trunc Si el archivo existe, elimínelo primero y luego créelo
ios :: binario Forma binaria

Nota: El método de apertura de archivos se puede utilizar junto con el operador |

Por ejemplo: escribir archivos en modo binarioios::binary | ios:: out

#include <fstream>

void test01()
{
    
    
	ofstream ofs;
	ofs.open("test.txt", ios::out);

	ofs << "姓名:张三" << endl;
	ofs << "性别:男" << endl;
	ofs << "年龄:18" << endl;

	ofs.close();
}

int main() {
    
    

	test01();

	system("pause");

	return 0;
}

para resumir:

  • Las operaciones de archivo deben incluir el archivo de encabezado fstream
  • La lectura de archivos puede usar ofstream o fstream class
  • Al abrir el archivo, debe especificar la ruta del archivo de operación y el método de apertura
  • Use << para escribir datos en el archivo
  • Una vez completada la operación, cierre el archivo

2. Leer el archivo

Leer archivos es similar a escribir archivos, pero hay más formas de leer

Los pasos para leer el archivo son los siguientes:

  1. Incluir archivo de encabezado

    #include <fstream>

  2. Crear un objeto de flujo

    ifstream ifs;

  3. Abra el archivo y determine si el archivo se abrió correctamente

    ifs.open ("ruta de archivo", método de apertura);

  4. Leer datos

    Cuatro formas de leer

  5. Cerrar el archivo

    ifs.close ();

#include <fstream>
#include <string>
void test01()
{
    
    
	ifstream ifs;
	ifs.open("test.txt", ios::in);

	if (!ifs.is_open())
	{
    
    
		cout << "文件打开失败" << endl;
		return;
	}

	//第一种方式
	//char buf[1024] = { 0 };
	//while (ifs >> buf)
	//{
    
    
	//	cout << buf << endl;
	//}

	//第二种
	//char buf[1024] = { 0 };
	//while (ifs.getline(buf,sizeof(buf)))
	//{
    
    
	//	cout << buf << endl;
	//}

	//第三种
	//string buf;
	//while (getline(ifs, buf))
	//{
    
    
	//	cout << buf << endl;
	//}

	char c;
	while ((c = ifs.get()) != EOF)
	{
    
    
		cout << c;
	}

	ifs.close();


}

int main() {
    
    

	test01();

	system("pause");

	return 0;
}

para resumir:

  • La lectura de archivos puede usar ifstream o fstream class
  • Utilice la función is_open para determinar si el archivo se abrió correctamente
  • cerrar cerrar archivo

En segundo lugar, el archivo binario

Leer y escribir archivos en modo binario

El método de apertura debe especificarse como ios :: binario

1. Escribir archivos

El método binario de escritura de archivos utiliza principalmente el objeto de flujo para llamar a la función miembro write

Prototipo de función:ostream& write(const char * buffer,int len);

Explicación de los parámetros: el búfer de puntero de caracteres apunta a una sección del espacio de almacenamiento en la memoria. len es el número de bytes leídos y escritos

#include <fstream>
#include <string>

class Person
{
    
    
public:
	char m_Name[64];
	int m_Age;
};

//二进制文件  写文件
void test01()
{
    
    
	//1、包含头文件

	//2、创建输出流对象
	ofstream ofs("person.txt", ios::out | ios::binary);
	
	//3、打开文件
	//ofs.open("person.txt", ios::out | ios::binary);

	Person p = {
    
    "张三"  , 18};

	//4、写文件
	ofs.write((const char *)&p, sizeof(p));

	//5、关闭文件
	ofs.close();
}

int main() {
    
    

	test01();

	system("pause");

	return 0;
}

para resumir:

  • El objeto de flujo de salida del archivo puede escribir datos en modo binario a través de la función de escritura

2. Leer el archivo

El modo binario de lectura de archivos utiliza principalmente el objeto de flujo para llamar a la función miembro read

Prototipo de función:istream& read(char *buffer,int len);

Explicación de los parámetros: el búfer de puntero de caracteres apunta a una sección del espacio de almacenamiento en la memoria. len es el número de bytes leídos y escritos

#include <fstream>
#include <string>

class Person
{
    
    
public:
	char m_Name[64];
	int m_Age;
};

void test01()
{
    
    
	ifstream ifs("person.txt", ios::in | ios::binary);
	if (!ifs.is_open())
	{
    
    
		cout << "文件打开失败" << endl;
	}

	Person p;
	ifs.read((char *)&p, sizeof(p));

	cout << "姓名: " << p.m_Name << " 年龄: " << p.m_Age << endl;
}

int main() {
    
    

	test01();

	system("pause");

	return 0;
}

El objeto de flujo de entrada de archivo puede leer los datos en modo binario a través de la función de lectura

Supongo que te gusta

Origin blog.csdn.net/qq_39507748/article/details/109568103
Recomendado
Clasificación