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

Marco Atzeri marco.atzeri@gmail.com
Mon Jun 11 20:38:00 GMT 2018


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



More information about the Cygwin mailing list