#include <fstream>
#include <iostream>
using namespace std;
int main() {
ofstream arquivo("exemplo.txt");
if (arquivo.is_open()) {
arquivo << "Olá, mundo!" << endl;
arquivo.close();
cout << "Arquivo criado com sucesso." << endl;
} else {
cout << "Erro ao abrir o arquivo." << endl;
}
return 0;
}
ofstream arquivo("dados.txt");
if (arquivo.is_open()) {
arquivo << "Nome: João" << endl;
arquivo << "Idade: 30" << endl;
arquivo << "Profissão: Engenheiro" << endl;
arquivo.close();
} else {
cout << "Não foi possível abrir o arquivo." << endl;
}
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream arquivo("numeros.txt");
const int MAX_NUMEROS = 100;
int numeros[MAX_NUMEROS];
int contador = 0;
if (arquivo.is_open()) {
while (arquivo >> numeros[contador] && contador < MAX_NUMEROS) {
contador++;
}
arquivo.close();
cout << "Números lidos: ";
for (int i = 0; i < contador; i++) {
cout << numeros[i] << " ";
}
cout << endl;
} else {
cout << "Não foi possível abrir o arquivo." << endl;
}
return 0;
}
Este exemplo lê números inteiros de um arquivo e os armazena em um array.
ofstream arquivo("log.txt", ios::app);
arquivo << "Nova entrada de log" << endl;
ofstream arquivo("dados.txt");
if (!arquivo) {
cerr << "Erro ao abrir o arquivo!" << endl;
return 1;
}
arquivo << "Dados importantes" << endl;
if (arquivo.fail()) {
cerr << "Erro ao escrever no arquivo!" << endl;
arquivo.close();
return 1;
}
arquivo.close();
int numero = 42;
char* bytes = reinterpret_cast<char*>(&numero);
// Agora 'bytes' aponta para os 4 bytes que compõem 'numero'
Cuidado: O uso incorreto pode levar a problemas de portabilidade e segurança!
struct Aluno {
int id;
char nome[50];
float nota;
};
void escreverAlunos(const Aluno alunos[], int tamanho, const char* nomeArquivo) {
ofstream arquivo(nomeArquivo, ios::binary);
if (arquivo.is_open()) {
for (int i = 0; i < tamanho; i++) {
arquivo.write(reinterpret_cast<const char*>(&alunos[i]), sizeof(Aluno));
}
arquivo.close();
cout << "Dados escritos com sucesso." << endl;
} else {
cout << "Erro ao abrir o arquivo para escrita." << endl;
}
}
int lerAlunos(Aluno alunos[], int maxAlunos, const char* nomeArquivo) {
ifstream arquivo(nomeArquivo, ios::binary);
int contador = 0;
if (arquivo.is_open()) {
while (arquivo.read(reinterpret_cast<char*>(&alunos[contador]), sizeof(Aluno))) {
if (++contador >= maxAlunos) break;
}
arquivo.close();
cout << "Dados lidos com sucesso." << endl;
} else {
cout << "Erro ao abrir o arquivo para leitura." << endl;
}
return contador;
}
int main() {
const int MAX_ALUNOS = 3;
Aluno alunos[MAX_ALUNOS] = {
{1, "João", 8.5},
{2, "Maria", 9.0},
{3, "Pedro", 7.5}
};
escreverAlunos(alunos, MAX_ALUNOS, "alunos.dat");
Aluno alunosLidos[MAX_ALUNOS];
int numLidos = lerAlunos(alunosLidos, MAX_ALUNOS, "alunos.dat");
for (int i = 0; i < numLidos; i++) {
cout << "ID: " << alunosLidos[i].id
<< ", Nome: " << alunosLidos[i].nome
<< ", Nota: " << alunosLidos[i].nota << endl;
}
return 0;
}