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:
- Archivo de texto: el archivo se almacena en la computadora en forma de código ASCII de texto
- 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:
- ofstream: operación de escritura
- ifstream: operación de lectura
- fstream: operaciones de lectura y escritura
1. Archivo de texto
1. Escribir archivos
Los pasos para escribir archivos son los siguientes:
-
Incluir archivo de encabezado
#include <fstream>
-
Crear un objeto de flujo
ofstream ofs;
-
abre un archivo
ofs.open ("ruta de archivo", método de apertura);
-
Escribir datos
ofs << "Datos escritos";
-
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:
-
Incluir archivo de encabezado
#include <fstream>
-
Crear un objeto de flujo
ifstream ifs;
-
Abra el archivo y determine si el archivo se abrió correctamente
ifs.open ("ruta de archivo", método de apertura);
-
Leer datos
Cuatro formas de leer
-
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