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;
}