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