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

Ross Smith ross.smith@otoy.com
Tue Jun 12 08:48:00 GMT 2018


On 2018-06-12 02:17, Marco Atzeri wrote:
> 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");

It doesn't segfault because it doesn't open the file, because no file
named "demo.cpp\n" exists. I don't know WTF you thought you were doing
here.

Ross Smith


--
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