joka73 Postado Julho 8, 2010 Denunciar Share Postado Julho 8, 2010 ola pessoal, estou a começar em C++ e gostaria de que alguém me ajudasse neste codigo, pois não consigo fazer que o contador incremente as linhas em branco.desde já obrigado#include <cstdlib> #include <iostream> #include <string> using namespace std; // le_bloco (istream& in, string& bloco) bool e_linha (string& bloco) { return bloco.size() >= 1 && bloco.find('\n') == bloco.size() - 1; } bool e_linha_em_branco (string& bloco) { bool em_branco = true; for (int i = 0; i < bloco.size(); i++) { if (!isspace(bloco[i])) { em_branco = false; break; } } return em_branco && e_linha(bloco); } bool e_titulo (string& linha) { return (linha.size()>=2 && linha[0]=='!' && linha[linha.size()-1]=='!' && e_linha_em_branco(linha)); } bool e_capitulo (string& linha) { return (linha.size()>=1 && linha[0]=='#'); } bool e_seccao (string& linha) { return (linha.size()>=2 && linha[0]=='#' && linha[1]=='#'); } bool e_subseccao (string& linha) { return (linha.size()>=3 && linha[0]=='#' && linha[1]=='#' && linha[2]=='#'); } bool e_ul (string& linha) { return (linha[0]=='-' && linha[1]==' '); } //bool e_ul_li (string& linha) { // // return (e_ul()); //} void le_bloco (string& bloco) { string linha; while (getline(cin, linha)) { linha = linha + '\n'; if (e_linha_em_branco(linha)) { break; } bloco += linha; } } int main() { string linha=""; //string bloco = ""; // // le_bloco(bloco); // cout << "-->\n"; // cout << bloco << endl; // cout << "<--\n"; // // // cout << "e linha: " << e_linha(bloco) << endl; // cout << "linha branco: " << e_linha_em_branco(bloco) << endl; if ( !cin.eof()) { while (getline(cin, linha)) { if (e_titulo(linha)) { cout <<"<title>" <<linha.substr(1, linha.size()-2) <<"</title>\n"; } else if (e_subseccao(linha)) { cout <<"<h3>" <<linha.substr(3) <<"</h3>\n"; } else if (e_seccao(linha)) { cout <<"<h2>" <<linha.substr(2) <<"</h2>\n"; } else if (e_capitulo(linha)) { cout <<"<h1>" <<linha.substr(1) <<"</h1>\n"; } else if (e_ul(linha)) { // cout <<"<ul>\n"; // for () { // } cout <<"<li>" <<linha.substr(2) <<"</li>\n"; } else { cout <<"OUTRA COISA QUALQUER.\n"; } } } //while (e_ul(linha)) { // cout <<"<li>" <<linha.substr(2) <<"</li>\n"; // break; // } system("PAUSE"); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Julho 8, 2010 Denunciar Share Postado Julho 8, 2010 Movendo: Tutoriais & Dicas - C, C++ --> C, C++. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 webpantoja Postado Julho 12, 2010 Denunciar Share Postado Julho 12, 2010 joka,O programa está completo?Seria bom você dar um exemplo de dados de entrada, aí fica melhor para visualizar o problema. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
joka73
ola pessoal, estou a começar em C++ e gostaria de que alguém me ajudasse neste codigo,
pois não consigo fazer que o contador incremente as linhas em branco.
desde já obrigado
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.