In article <11**********************@74g2000cwt.googlegroups. com>,
da*******@gmail.com says...
I would like know how I can skip a line while reading
a set of input data (from a text file) if the first character
of the line is "#".
My original code reads:
ifstream Infile("data.dat");
for( int i=0; i<N; i++){
Infile >x[i] >y[i];
}
One obvious possibility would be something like this:
std::istream &my_getline(std::istream &is, std::string &s) {
while (std::getline(is, s) && s[0] == '#')
;
return is;
}
for (int i=0; i<N; i++) {
std::string line;
if (!my_getline(Infile, line))
break;
std::stringstream temp(line);
temp >x[i] >y[i];
}
That does raise one minor question: you're starting with a count (N) of
lines to read. Is that count supposed to include the commented lines or
not? The code above attempts to read N lines of actual data -- if you
want a total of N lines, whether they contain data or not, you'd have to
rewrite it a bit.
--
Later,
Jerry.
The universe is a figment of its own imagination.