Manipulação de strings, arquivos e struct
Nesse exercício resolvido é lida um texto de um arquivo e mostrado o texto ao contrário, utilizando uma struct para organizar os dados lidos do arquivo. Como são muitos conceitos necessários para o exercício completo, eu dividi a solução em várias etapas, com vídeos para cada etapa.
Sendo assim, a resolução está dividida em etapas com manipulação de strings, arquivos e struct em C++.
Inicialmente é realizada a leitura de uma string e mostrada a palavra lida ao contrário. Também é feita a leitura da string a partir de um arquivo de texto (vídeos relacionados como aquecimento para os conceitos). Por final é feito um algoritmo que armazena os dados lidos em uma estrutura de dados definida pelo usuário e que divide o nome completo em nome e sobrenome (último vídeo).
Aquecimento para os conceitos
Resultado final
Algoritmo
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct spessoa {
string nome;
string sobrenome;
};
int main()
{
string nomeCompleto;
string temp;
ifstream arq("dados.txt");
int i, numPessoa = 0;
spessoa pessoa[2];
if (arq.is_open()) {
while ( getline(arq, nomeCompleto) ) {
temp = "";
for (i = 0; i < nomeCompleto.size(); i++) {
if (nomeCompleto[i] != ' ') {
temp = temp + nomeCompleto[i];
} else {
break;
}
}
pessoa[numPessoa].nome = temp;
temp = "";
for (i = i+1; i < nomeCompleto.size(); i++) {
temp = temp + nomeCompleto[i];
}
pessoa[numPessoa].sobrenome = temp;
numPessoa++;
}
} else {
cout << "Arquivo invalido!";
}
arq.close();
for (i = 0; i < 2; i++) {
cout << "Nome: " << pessoa[i].nome << endl;
cout << "Sobrenome: " << pessoa[i].sobrenome << endl;
cout << "========================" << endl;
}
return 0;
}
Vídeo