0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
|
||||||
1 | ||||||
Съедается первый символ05.10.2017, 12:17. Показов 2137. Ответов 11
Метки нет (Все метки)
При вводе символов и подсчёте первый символ съедается, как это исправить?
0
|
05.10.2017, 12:17 | |
Ответы с готовыми решениями:
11
Заменить первый и полследний символ на * Первый символ каждой строки Перевести первый символ в верхний регистр Заменить первый и последний символ на звездочку |
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
05.10.2017, 12:32 | 2 |
Уберите строку 11
1
|
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
|
|
05.10.2017, 12:38 [ТС] | 3 |
Но если я её уберу то как я введу символы то?
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
05.10.2017, 12:41 | 4 |
0
|
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
|
|
05.10.2017, 13:56 [ТС] | 5 |
Ну если я убираю 11 строку то программа не просит ввести ничего и просто выводит на экран что все по 0
Добавлено через 3 минуты А все, я просто кое где ошибся, спасибо большое, заработало! Добавлено через 1 час 9 минут Возникла другая проблема, !=EOF должен вроде как реагировать на enter после ввода символов, и начинать считать символы и вывести на экран, но после enterон переходит на другую строку, и что бы программа продолжила работать нужно нажать ctrlz(^Z) и ещё раз enter
0
|
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,877
|
|
05.10.2017, 15:10 | 6 |
enter это '\n' а не EOF
EOF в консоли это ^D ^Z должен отправить программу в паузу, это сигнал SIG_SUSPEND вроде, его даже перехватить нельзя. Как у вас это работает?! Ну и ловить равенство char с EOF (который обычно равен -1) не лучшая идея. Для ловли пробелов лучше воспользоваться isspace()
0
|
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
|
|
07.10.2017, 16:40 [ТС] | 7 |
Я имею в виду как мне сделать так, что бы сразу после введения символов "aaa bbb" я просто нажал enter и программа начала работать. Потому что сейчас когда я нажимаю enter она переходит на другую строку и дальше что бы программа начала работать нужно нажать ctrl Z и только тогда enter
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
||||||
07.10.2017, 17:35 | 8 | |||||
Сообщение было отмечено Yuniiko как решение
Решение
Yuniiko,
1
|
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
|
|
07.10.2017, 17:44 [ТС] | 9 |
В Visual Studio не опознаёт gets
Добавлено через 2 минуты Всё, использовал gets_s и всё заработало, спасибо огромное)
0
|
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,877
|
|
07.10.2017, 17:54 | 10 |
В документации на gets написано
Never use this function . Попробуйте fgets(str, size, stdin); (он входит в stdio.h) - это точно лучше чем использовать непереносимые костыли вроде printf_s, gets_s и т.п.
0
|
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
|
|
07.10.2017, 18:08 [ТС] | 11 |
Тогда вот это пишет: "fgets: функция не принимает 1 аргументов"
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
||||||
07.10.2017, 18:24 | 12 | |||||
Ну, если
Исправимся.
0
|
07.10.2017, 18:24 | |
07.10.2017, 18:24 | |
Помогаю со студенческими работами здесь
12
Заменить первый и последний символ слова на * Считывается только первый символ char Выводится только первый символ строки Поменять местами первый и последний символ в строке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |