!cJdElzanFnHAHeuTPV:matrix.org

✙ C/C++ ✙

310 Members
Правила: 1. Спілкування українською мовою. 2. Без запрошень чи лінків у інші спільноти. 3. Боти, що генерують більше двох повідомлень на день, заборонені. Частина простору "Патріотична Україна" (#ukraine.all:matrix.org)121 Servers

Load older messages


SenderMessageTime
23 Mar 2024
@balaraz:matrix.lviv2.dcomm.net.uaN

Тут така дивна ситуація. Я вже колись, здається, писав про проблему з EOF у std::cin.
Після того як ввести EOF використавши ^D тоді std::cin переходить у не робочий режим який можна очистити методом clear,
але чомусь у мене після цього проблема не зникала. При наступному зчитуванні функція (getline/operator>>) одразу завершується нічого не зчитавши й знову встановлюється режим EOF.
Рішення у ваших інтернетах я так і не знайшов. Хтось пише що просто очистити стан і все має працювати, а дехто що це не виправляється.
І навіть ChatGPT не дає розвʼязання цієї проблеми. Після цього всього методом тику я знайшов дуже дивне вирішення.

std::cin.clear();       // Очищуємо статус потоку
std::cin.putback('0');  // Додаємо символ у буфер потоку
std::cin.ignore();      // Видаляємо попередній символ

Після цих дій все знову працює.

05:41:51
@j.teleg:nitro.chat@j.teleg:nitro.chat joined the room.14:26:08
@j.teleg:nitro.chat@j.teleg:nitro.chat left the room.20:15:20
24 Mar 2024
@vldk1:matrix.org@vldk1:matrix.org joined the room.02:31:05
25 Mar 2024
@danilus_:matrix.orgTiwula changed their display name from danilus to Tiwula.19:48:24
26 Mar 2024
@leopolis:matrix.balanceroute.netleopolis joined the room.20:54:38
@lexapara:matrix.org@lexapara:matrix.org left the room.23:47:18
28 Mar 2024
@internews112:matrix.orgTomas Berezovskiy joined the room.15:51:53
@xezar:matrix.mrsommelier.comxezar joined the room.16:53:01
@rxxjfqhx:matrix.orgadminchanged room power levels.16:53:18
@rxxjfqhx:matrix.orgadminchanged room power levels.16:53:37
30 Mar 2024
@winnie_ua:matrix.orgWinnie joined the room.10:20:27
5 Apr 2024
@internews112:matrix.orgTomas Berezovskiy set a profile picture.04:06:14
@ruslan_rl:matrix.org@ruslan_rl:matrix.org joined the room.04:10:22
@ruslan_rl:matrix.org@ruslan_rl:matrix.orgRedacted or Malformed Event04:30:16
@ruslan_rl:matrix.org@ruslan_rl:matrix.orgRedacted or Malformed Event04:32:22
@balaraz:matrix.lviv2.dcomm.net.uaN
In reply to @ruslan_rl:matrix.org
N: скажіть, а якщо я зараз почну вчитись в напрямку ІТ, коли я почну розуміти те про, що ви пишете 😁?
Ну це все особисто, залежить від того як це все вивчати. Я вивчаю програмування вже близько 4 роки.
04:38:15
@ruslan_rl:matrix.org@ruslan_rl:matrix.orgRedacted or Malformed Event04:51:37
@ruslan_rl:matrix.org@ruslan_rl:matrix.orgRedacted or Malformed Event04:52:38
@ruslan_rl:matrix.org@ruslan_rl:matrix.orgRedacted or Malformed Event04:53:58
@balaraz:matrix.lviv2.dcomm.net.uaN
In reply to @ruslan_rl:matrix.org
А який напрямок програмування ви вивчаєте?
Починав як і всі з вебу, але зрозумів що не моє. Зараз я навчаюсь в університеті на курсі Інженерія програмного забезпечення. Всі знання які я маю вивчав самостійно без жодних курсів.
05:01:55
@ruslan_rl:matrix.org@ruslan_rl:matrix.orgRedacted or Malformed Event05:04:19
@balaraz:matrix.lviv2.dcomm.net.uaN
In reply to @ruslan_rl:matrix.org
А ви вчитесь і працюєте?
Ні
05:19:07
@v78l4:aria-net.orgЧеслав Ратушний joined the room.09:40:23
@rxxjfqhx:matrix.orgadminchanged room power levels.09:41:04
@rxxjfqhx:matrix.orgadminchanged room power levels.09:41:33
@_bifrost_bot:aria-net.orgBifrost Bot joined the room.10:06:38
@winnie_ua:matrix.orgWinnie
In reply to @balaraz:matrix.lviv2.dcomm.net.ua

Тут така дивна ситуація. Я вже колись, здається, писав про проблему з EOF у std::cin.
Після того як ввести EOF використавши ^D тоді std::cin переходить у не робочий режим який можна очистити методом clear,
але чомусь у мене після цього проблема не зникала. При наступному зчитуванні функція (getline/operator>>) одразу завершується нічого не зчитавши й знову встановлюється режим EOF.
Рішення у ваших інтернетах я так і не знайшов. Хтось пише що просто очистити стан і все має працювати, а дехто що це не виправляється.
І навіть ChatGPT не дає розвʼязання цієї проблеми. Після цього всього методом тику я знайшов дуже дивне вирішення.

std::cin.clear();       // Очищуємо статус потоку
std::cin.putback('0');  // Додаємо символ у буфер потоку
std::cin.ignore();      // Видаляємо попередній символ

Після цих дій все знову працює.

Класика

також якщо через cin спобьувати прочитит число а корисутвач ввів не число то cin ламається.

В дефолтному конфізі cin дуже не юзабельний.

    // Set exception mask for cin stream
    cin.exceptions(ios::failbit);

осб так можна боротись з цим, тоді воно викине виключення замість установки біто

У випадку з EOF це eofbit

https://cplusplus.com/reference/ios/ios/exceptions/ -- тут э табличка гарна

спека https://en.cppreference.com/w/cpp/io/basic_ios/exceptions

10:52:02
@winnie_ua:matrix.orgWinnie
In reply to @ruslan_rl:matrix.org
Я записався на курси Фронт-енд в Шаг, далі хочу зробити Бек-енд

для бекенду С++ не обов'язково

В тому сенсі що С++ це реально складно і його релаьно треба добре знати щоб мати результат гарний і не страждати. Це dedication потрібен.

Ми коли вчили в універі плюси, то після пів року по суті нічого не знали, лише поверхню.

10:53:55
@ruslan_rl:matrix.org@ruslan_rl:matrix.orgRedacted or Malformed Event14:52:48

Show newer messages


Back to Room ListRoom Version: 9