>This wouldn't be a problem for me in C, but i want to do it in C++
You can use a C solution in C++, you know. But that aside, just read each line and don't do anything if the first non-whitespace character is '#':
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
ifstream in ( "somefile" );
if ( in.is_open() ) {
string line;
while ( getline ( in, line ) ) {
string::size_type i = line.find_first_not_of ( " \t\n\v" );
if ( i != string::npos && line[i] == '#' )
continue;
// Process non-comment line
}
}
}
This is much like you would do it in C:
#include <stdio.h>
#include <string.h>
int main ( void )
{
FILE *in = fopen ( "somefile", "r" );
if ( in != NULL ) {
char line[1024];
while ( fgets ( line, sizeof line, in ) != NULL ) {
size_t i = strspn ( line, " \t\n\v" );
if ( line[i] == '#' )
continue;
/* Process non-comment line */
}
}
return 0;
}
Reputation Points: 6442
Solved Threads: 1393
Bad Cop
Offline 11,807 posts
since Sep 2004