Помогите, у меня брат друга сестры -- даун, и он спрашивает:Если ввести a - он увеличивает счётчик a и печатает Error;Если ввести не а и не b - он печатает Error два раза.Откуда лишний принт Error'а? Он реально не понимает.
Блять, случайно тред создал, простите.
>>1054737 (OP)Цикл полностью выложи
>>1054741Это он и есть, закрывающая скобка не попала в кадр.
>>1054737 (OP)От Enter-а там лишний "Error".А, вообще, передай этому брату друга сестры, что в программировании ему делать нечего, если у него такие вопросы возникают. И так макак развелось, как собак нерезанных.
>>1054772Тащемта большинство любителей плюсов из конца 90-х/начала 00-х были не меньшими макаками и писали очень ебанутый код
>>1054772>НАСТОЯЩИЕ ПРОГРАММИСТЫ НЕ ИМЕЮТ ПРАВА ЗАДАВАТЬ ВОПРОСЫ, КОТОРЫЕ НЕ КАЖУТСЯ МНЕ НЕОЧЕВИДНЫМИСпасибо, оставайтесь на связи
>>1054737 (OP)while ((grade = getchar()) != EOF) { if (grade == 'a') { ++aCount; } if (grade == 'b') { ++bCount; } else printf("Error\n");}
>>1054737 (OP)Нахуй if или else?int main() { while ((grade = getchar()) != '\n') { if (grade == 'a') { aCount++; } if (grade == 'b') { bCount++; } } printf("%d a\n%d b", aCount, bCount);}
>>1054850И как ты еррор засунешь? Да и с точки зрения эстетики, вариант с елзами круче. Но офк надо делать через свитч.
>>1054850Задачка такая в книжке.
>>1054863>С точки зрения эстетикиМань не смеши.
>>1054785Право задавать вопросы тут ни при чём.Но если человек не в состоянии сесть и самостоятельно проанализировать даже такой маленький кусок кода, то прогать ему не стоит. В противном случае он только будет создавать проблемы себе и окружающим.
>>1055069Ну не начинай эту хуйню.
>>1055069>проанализировать даже такой маленький кусок кода, то прогать ему не стоитЭто сишком жирно или же ты наглухо отбитый. Когда VS, пару лет назад была полным говном, которое сыпало баги с неопределенным поведением, найти которые можно было только глянув код на asm, людям тоже в программировании делать нечего было?? Да разница между говном которое заносится в поток и багами большая, но сути это не меняет. За спрос обычно не бьют.Вполне дефолтный вопрос начинающего вкатывальщика. >>1054772>так макак развелось, как собак нерезанныхСмею предположить, что ты одна из этих макак, которая к тому же и конкуренции боится.
Enter это символ новой строки '\n'. Первый раз Error в ответ на твой на а и не б, а второй на символ новой строки.
>>1057298Я мимокракодил и непонел:в плюсах, что, если ты написал в консоли "хуй" и нажал энтер, то программа увидит в потоке ввода "хуй\nEOF" вместо "хуйEOF" ?
>>1054737 (OP)>Откуда лишний принт Error'а?У тебя там условие не выполняется. Надо не а и б, получилось не а или не б.
>>1057338Конкретно функция getchar() сначала загружает данные из потока ввода в буфер, а потом из него выгружает в поток вывода. Ентер при вводе в терминал интерпретируется как ввод новой строки, т.е. эскейп-последовательность "\n". Она тоже попадает в буфер, соответственно, поэтому для неё надо делать исключение логическое отдельно, чтобы он не воспринимал наличие "\n" как дефолтный случай. А ещё такие вещи по-нормальному switch/case'ом делаются внутри цикла, проверяющего на EOF. EOF это End of File - последовательность, она разная на разных системах. В винде это ctrl+zМимоОП-удолите-тред-он-нинужон
>>1057491Не ввод, а переход на новую строку, конечно. Нувыпонели.
>>1054772Двачаю.+ ответ опу: Getchar() - ещё тот мем, что и get(), он твой "\n" от enter'a жрёт.