/*
* @topic T00340 Apr 18 -- how to print HTML content withut tags v.2
* @brief Program demonstrates <tt>getline()</tt> function
*/
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
using namespace std;
int main()
{
// This version of the program uses getline()
// to get HTML input line-by-line.
// HTML input is expected from std::cin
string str_line; // placeholder for a line of HTML
// Using memory buffer to store HTML
stringstream buffer;
while ( getline( cin, str_line) ) {
// populate the buffer with each line of HTML
buffer << str_line;
}
// Use unformatted input to read HTML character-by-character:
bool flag_inside_tag = false;
int onechar; // using int because char cannot represent EOF
while ( ( onechar = buffer.get() ) != EOF ) {
if ( onechar == '<') {
// Encountered opening of an HTML tag
flag_inside_tag = true;
continue;
}
else if ( onechar == '>') {
// Encountered closing of an HTML tag
flag_inside_tag = false;
cout << " ";
continue;
}
else if ( flag_inside_tag == false ) {
// Print everything outside of HTML tags
std::cout.put( onechar );
}
}
return 0;
}