Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 September 24

 ‌  ... in IT KPI C/C++ ХВ (не UB)
Еоф ведь не конец...
источник

 ‌  ... in IT KPI C/C++ ХВ (не UB)
Это не значение потока, которое принимает 1, если всё считано успешно?
источник

KS

Kyryl Sydorov in IT KPI C/C++ ХВ (не UB)
eof() наче бул повертає
источник

A

András in IT KPI C/C++ ХВ (не UB)
 ‌  
Еоф ведь не конец...
well yes
источник

A

András in IT KPI C/C++ ХВ (не UB)
Returns true if the eofbit error state flag is set for the stream.

This flag is set by all standard input operations when the End-of-File is reached in the sequence associated with the stream.
источник

N

NetCat in IT KPI C/C++ ХВ (не UB)
András
Як в стрімі перейти в кінець файлу? так не працює
in[i].seekg(0, ios_base::end);
std::cout << "Deos eof" << in[i].eof() << "\n";
    std::ifstream is ("test.txt", std::ifstream::binary);
   is.seekg (0, is.end);
   int length = is.tellg();
   is.seekg (0, is.beg);
   is.ignore(length);
с игнором возможно зашквар, просто первое что пришло в голову
(не проверял на работоспособность)
источник

N

NetCat in IT KPI C/C++ ХВ (не UB)
типо просто сама идея
1. узнать размер файла
2. пропустить с начала файла ровно столько сколько весит файл
по идее это и даст еоф
источник

N

NetCat in IT KPI C/C++ ХВ (не UB)
András
Як в стрімі перейти в кінець файлу? так не працює
in[i].seekg(0, ios_base::end);
std::cout << "Deos eof" << in[i].eof() << "\n";
а тут еоф не будет потому что еоф бит выставляется в случае если достигнут конец файла при чтении потока, а тут собственно чтения небыло
источник

A

András in IT KPI C/C++ ХВ (не UB)
NetCat
а тут еоф не будет потому что еоф бит выставляется в случае если достигнут конец файла при чтении потока, а тут собственно чтения небыло
Я там міг поставити читання, але воно не допомагало
источник

A

András in IT KPI C/C++ ХВ (не UB)
коротше, я просто переписую зараз весь код
источник

 ‌  ... in IT KPI C/C++ ХВ (не UB)
А что тебе вообще нужно?
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Ну стримы же не обязательно конечные
источник

A

András in IT KPI C/C++ ХВ (не UB)
 ‌  
А что тебе вообще нужно?
грубо кажучи, змусити eof вертати тру
источник

 ‌  ... in IT KPI C/C++ ХВ (не UB)
Зачем ты хочешь, не трогая поток, перейти в конец?
источник

A

András in IT KPI C/C++ ХВ (не UB)
я можу трогати потік, просто читати всі дані з нього неефективно, незручно, тому хочу зразу зтригерити еоф
источник

A

András in IT KPI C/C++ ХВ (не UB)
Окей, хто може пояснити чого в мене саме такий результат?

cout << in[i].tellg() << ' ';                          // 0
getline(in[i], s[i]);
cout << s[i].length() << ' ' << in[i].tellg() << '\n'; // 1 16  (1 -- good, 16 -- WTF?!)
источник

N

NetCat in IT KPI C/C++ ХВ (не UB)
может смогу помочь
источник

N

NetCat in IT KPI C/C++ ХВ (не UB)
поподробнее только
источник

N

NetCat in IT KPI C/C++ ХВ (не UB)
András
Окей, хто може пояснити чого в мене саме такий результат?

cout << in[i].tellg() << ' ';                          // 0
getline(in[i], s[i]);
cout << s[i].length() << ' ' << in[i].tellg() << '\n'; // 1 16  (1 -- good, 16 -- WTF?!)
хотя бы код целиком
и было бы интересно узнать что ты читаешь
источник

N

NetCat in IT KPI C/C++ ХВ (не UB)
András
Окей, хто може пояснити чого в мене саме такий результат?

cout << in[i].tellg() << ' ';                          // 0
getline(in[i], s[i]);
cout << s[i].length() << ' ' << in[i].tellg() << '\n'; // 1 16  (1 -- good, 16 -- WTF?!)
как вариант можно предположить что поток прочитал 16 байт например таких: 32 0 0 0 0 ..(нули).. 0 0 0 0 0 '\n'
в итоге прочитано было 16 байт, а строчка получилась весом 1 байт (один пробел записался и всё)
источник