![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arquivos e Diretórios |
Escreva um programa C++ para ordenar as linhas de um arquivo texto em ordem alfabética - Desafio de Programação Resolvido em C++Quantidade de visualizações: 395 vezes |
|
Pergunta/Tarefa: Escreva um programa C++ para ordenar as linhas de um arquivo texto em ordem alfabética. Seu código deverá abrir um arquivo texto, ordenar suas linhas em ordem alfabética e salvar o resultado em outro arquivo texto. Sua saída deverá ser parecida com: Conteúdo do arquivo: MARIO SANTOS REIS ALBERTO SANTIAGO GOMES INES DE SOUZA MAGALHAES CARLOS THIAGO SANTOS ROBERTO CARLOS SILVA REIS BEATRIZ MARIA CASTRO As linhas foram escritas em ordem alfabética com sucesso. Conteúdo do arquivo: ALBERTO SANTIAGO GOMES BEATRIZ MARIA CASTRO CARLOS THIAGO SANTOS INES DE SOUZA MAGALHAES MARIO SANTOS REIS ROBERTO CARLOS SILVA REIS Veja a resolução comentada deste exercício usando C++: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
// vamos precisar da biblioteca de entrada e saída
#include <iostream>
// vamos precisar também da biblioteca de fluxo de arquivos
#include <fstream>
// vamos precisar do contêiner vector para adicionar as linhas de texto
#include <vector>
// vamos usar o algorítmo sort
#include <algorithm>
// e vamos usar um iterador também
#include <iterator>
using namespace std;
// uma função para exibir o conteúdo das linhas do arquivo
void exibir_conteudo_arquivo(const string &nome_arquivo) {
// nome do arquivo quer será aberto
ifstream arquivo(nome_arquivo);
// para receber cada uma das linhas do arquivo texto
string linha;
// o arquivo foi aberto com sucesso?
if (arquivo.is_open()) {
cout << "Conteúdo do arquivo:\n" << endl;
// vamos ler as linhas do arquivo
while (getline(arquivo, linha)) {
cout << linha << endl;
}
// vamos fechar o arquivo
arquivo.close();
}
else {
cout << "Não foi possível abrir o arquivo." << endl;
}
}
// função principal do programa
int main(int argc, char *argv[]) {
// arquivo de entrada
ifstream arquivo_entrada("nomes.txt");
// arquivo de saída
ofstream arquivo_saida("nomes_ordenados.txt");
// os arquivos foram abertos com sucesso?
if (arquivo_entrada.is_open() && arquivo_saida.is_open()) {
exibir_conteudo_arquivo("nomes.txt");
// um vector para guardar as linhas do arquivo de de entrada
vector<string> linhas;
// para guardar as linhas individuais do arquivo
string linha;
// vamos ler todas as linhas de texto do arquivo de entrada
while (getline(arquivo_entrada, linha)) {
// adiciona esta linha ao vetor
linhas.push_back(linha);
}
// vamos ordenar as linhas em ordem alfabética
sort(linhas.begin(), linhas.end());
// agora vamos gravar o vector de linhas no arquivo de saída
copy(linhas.begin(), linhas.end(), ostream_iterator<string>(arquivo_saida, "\n"));
// vamos fechar os arquivos de entrada e saída
arquivo_entrada.close();
arquivo_saida.close();
cout << "\nAs linhas foram escritas em ordem alfabética com sucesso.\n" << endl;
exibir_conteudo_arquivo("nomes_ordenados.txt");
}
else {
cout << "Não foi possível abrir os arquivos de entrada e saída." << endl;
}
cout << "\n\n";
return EXIT_SUCCESS;
}
|
|
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






