// ************************************************************ // Aquivo exemplo para o trabalho de REFERÊNCIA CRUZADA // Este programa converte um arquivo texto para // uma sequencia de palavras separadas por ENTER. // ************************************************************ #include #include using namespace std; using std::ifstream; // input file stream class LinhaTexto{ string linhaDeTexto; void removeBrancosDoInicio() { int pos; do { pos = linhaDeTexto.find(" ", 0); if(pos == string::npos) break; if (pos != 0) break; linhaDeTexto.erase(0,1); } while (1); } public: LinhaTexto() { } void setTexto(string T) { linhaDeTexto = T; } void separaPalavras() { int pos=0; do{ pos = linhaDeTexto.find(" ", 0); if (pos == 0) removeBrancosDoInicio(); pos = linhaDeTexto.find(" ", 0); if(pos != string::npos) { cout << linhaDeTexto.substr(0,pos) << endl; linhaDeTexto.erase(0,pos); } else { break; } } while (1); if (linhaDeTexto.size() != 0) cout << linhaDeTexto.substr(0,pos) << endl; } }; int main() { string S; LinhaTexto Linha; ifstream arquivoDeEntrada; arquivoDeEntrada.open ("Texto.txt", ios::in); if (!arquivoDeEntrada) { cout << "Problemas na abertura do arquivo" << endl; system("pause"); exit(1); } while (!arquivoDeEntrada.eof()) { getline(arquivoDeEntrada, S); if (S.empty()) continue; Linha.setTexto(S); Linha.separaPalavras(); cout << "--" << endl; } arquivoDeEntrada.close(); cout << "++" << endl; system("pause"); }