$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: pktao_at_[hidden]
Date: 2006-08-01 18:49:01
Dear Boost users --I have a simple question about how to test for eof.
I usually use:
std::ifstream inputDataStream("path to file");
and test for EOF by: inputDataStream.eof()
I tried the same thing using:
boost::filesystem::basic_ifstream<char>
   inputDataStream("path to file", std::ios_base::in);
and test for EOF by: inputDataStream.eof() but its not working.  Am I using the
.eof() correctly in the boost version of basic_ifstream?
Here is the broken code using the boost version of basic_ifstream:
int main() {
    boost::filesystem::path dataPath("/tao/data");
    if ( !exists(dataPath) ) {
        std::cerr << "Path does not exist!";
        return EXIT_FAILURE;
    };
    for (boost::filesystem::directory_iterator fileIterator(dataPath);
         fileIterator != boost::filesystem::directory_iterator();
         fileIterator++) {
             const boost::filesystem::path InputFileName = dataPath/fileIterator
-> leaf();
             boost::filesystem::basic_ifstream<char>
inputDataStream(InputFileName, std::ios_base::in);
             int i = 1;
             int previousIterator = 0;
             trialOnsetWrite();
             while ( !inputDataStream.eof() ) {
                 if ( (previousIterator + 3) == i) {
                     immobileWrite(i);
                     previousIterator = previousIterator + 3;
                 }
                 else {
                     dataStructureWrite(i);
                 };
                 i++;
             };
             trialOffsetWrite(i);
    };
    return (0);
};
Very appreciative,
Patrick