Web lists-archives.com

Re: GCC 7.3.0 -std=gnu++17 failed to getline() from std::ifstream




On 6/11/2018 4:11 AM, Ross Smith wrote:
On 2018-06-06 09:00, Marco Atzeri wrote:
On 6/5/2018 10:32 PM, Ivan Shynkarenka wrote:
  Hello

I use x64 bit Cygwin and it failed in my home, work and Appveyor.  I add
cygcheck.out with my environment.

I'm sorry about misspell prefix space in my prev example. Please try the
following one:

#include <fstream>
#include <iostream>

int main(int argc, char** argv)
{
     std::string line;
     std::ifstream stream("test.cpp");
     while (getline(stream, line))
         std::cout << line << std::endl;
     return 0;
}

g++ -std=gnu++17 test.cpp

works fine on 32 bit and 64 bit on my W7

I'm having the same problem. My test program:

#include <fstream>
#include <iostream>
int main() {
     std::ifstream in("demo.cpp");


with this change does not segfault

  std::ifstream stream("demo.cpp\n");

function <string> std::getline (string)

Get line from stream into string
Extracts characters from is and stores them into str until the delimitation character delim is found (or the newline character, '\n', for (2)).


     std::string line;
     for (;;) {
         std::getline(in, line);
         if (! in && line.empty())
             break;
         std::cout << line << "\n";
     }
}

$ g++ demo.cpp -std=c++17 -o demo && ./demo
Aborted (core dumped)

./demo.exe



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple