In article <. 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.