23 Mar 2024 |
N | Тут така дивна ситуація. Я вже колись, здається, писав про проблему з 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 joined the room. | 14:26:08 |
| @j.teleg:nitro.chat left the room. | 20:15:20 |
24 Mar 2024 |
| @vldk1:matrix.org joined the room. | 02:31:05 |
25 Mar 2024 |
| Tiwula changed their display name from danilus to Tiwula. | 19:48:24 |
26 Mar 2024 |
| leopolis joined the room. | 20:54:38 |
| @lexapara:matrix.org left the room. | 23:47:18 |
28 Mar 2024 |
| Tomas Berezovskiy joined the room. | 15:51:53 |
| xezar joined the room. | 16:53:01 |
| adminchanged room power levels. | 16:53:18 |
| adminchanged room power levels. | 16:53:37 |
30 Mar 2024 |
| Winnie joined the room. | 10:20:27 |
5 Apr 2024 |
| Tomas Berezovskiy set a profile picture. | 04:06:14 |
| @ruslan_rl:matrix.org joined the room. | 04:10:22 |
@ruslan_rl:matrix.org | Redacted or Malformed Event | 04:30:16 |
@ruslan_rl:matrix.org | Redacted or Malformed Event | 04:32:22 |
N | In reply to @ruslan_rl:matrix.org N: скажіть, а якщо я зараз почну вчитись в напрямку ІТ, коли я почну розуміти те про, що ви пишете 😁? Ну це все особисто, залежить від того як це все вивчати. Я вивчаю програмування вже близько 4 роки. | 04:38:15 |
@ruslan_rl:matrix.org | Redacted or Malformed Event | 04:51:37 |
@ruslan_rl:matrix.org | Redacted or Malformed Event | 04:52:38 |
@ruslan_rl:matrix.org | Redacted or Malformed Event | 04:53:58 |
N | In reply to @ruslan_rl:matrix.org А який напрямок програмування ви вивчаєте? Починав як і всі з вебу, але зрозумів що не моє. Зараз я навчаюсь в університеті на курсі Інженерія програмного забезпечення . Всі знання які я маю вивчав самостійно без жодних курсів. | 05:01:55 |
@ruslan_rl:matrix.org | Redacted or Malformed Event | 05:04:19 |
N | In reply to @ruslan_rl:matrix.org А ви вчитесь і працюєте? Ні | 05:19:07 |
| Чеслав Ратушний joined the room. | 09:40:23 |
| adminchanged room power levels. | 09:41:04 |
| adminchanged room power levels. | 09:41:33 |
| Bifrost Bot joined the room. | 10:06:38 |
Winnie | 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 | In reply to @ruslan_rl:matrix.org Я записався на курси Фронт-енд в Шаг, далі хочу зробити Бек-енд для бекенду С++ не обов'язково
В тому сенсі що С++ це реально складно і його релаьно треба добре знати щоб мати результат гарний і не страждати. Це dedication потрібен.
Ми коли вчили в універі плюси, то після пів року по суті нічого не знали, лише поверхню.
| 10:53:55 |
@ruslan_rl:matrix.org | Redacted or Malformed Event | 14:52:48 |