Хочу найти способ после ввода числа с помощью scanf_s стереть это число, тоесть
scanf_s("%d", &a);
printf("\n%d", a);
Если я введу любое число, то у меня будет такое
а
а
Мне нужно, что бы после scanf_s число стиралось, но не использовать system("cls") так как, до этого числа будет введены слова, которые стирать не нужно.
Я пробовал функцию delline(), но она не работает или же это я не понял её
Я также искал, как использовать функцию getch() для ввода чисел, а не символов, так как после ввода символа, она не отображает его в окне консоли, как раз то что мне нужно, но тип не тот.
Другие языки программирования и технологии
Язык С. Как стереть определенную область или как спомощью getchar() ввести число?
Не рекомендую так делать, но если очень хочется…
То, что на экран при вводе с клавиатуры (или другого источника) что-то выводится - это так называемое "эхо" на терминал. Есть терминалы и без эха, в которых та же программа будет ВЫГЛЯДЕТЬ по-другому.
Само наличие вывода - это хорошо, так как этим процессом можно управлять.
Например, выводя на экран символы '\b'. Это ОБЫЧНО передвигает позицию курсора налево, не удаляя символ. Если после этого вывести пробел, последний символ будет ВИЗУАЛЬНО заменен. Но в потоке вывода останутся все символы, что не есть хорошо для программы, так как её вывод нельзя будет использовать. Опять же есть терминалы, на которых '\b' затирает символ.
Технология сложная, приходится ВРУЧНУЮ распознавать данные, читая их посимвольно через getch или конвертируя строки. Например затирать число '000012' можно только если оно прочитано как строка и известна его длина.
Итого, писать программу, которая зависит от конкретного типа вывода, чтобы визуально смотрелось якобы хорошо, можно, но получится очень сложно и криво.
То, что на экран при вводе с клавиатуры (или другого источника) что-то выводится - это так называемое "эхо" на терминал. Есть терминалы и без эха, в которых та же программа будет ВЫГЛЯДЕТЬ по-другому.
Само наличие вывода - это хорошо, так как этим процессом можно управлять.
Например, выводя на экран символы '\b'. Это ОБЫЧНО передвигает позицию курсора налево, не удаляя символ. Если после этого вывести пробел, последний символ будет ВИЗУАЛЬНО заменен. Но в потоке вывода останутся все символы, что не есть хорошо для программы, так как её вывод нельзя будет использовать. Опять же есть терминалы, на которых '\b' затирает символ.
Технология сложная, приходится ВРУЧНУЮ распознавать данные, читая их посимвольно через getch или конвертируя строки. Например затирать число '000012' можно только если оно прочитано как строка и известна его длина.
Итого, писать программу, которая зависит от конкретного типа вывода, чтобы визуально смотрелось якобы хорошо, можно, но получится очень сложно и криво.
Слава Глушенко
Спасибо, я понял, это то что мне было нужно, помогло) После scanf_s автоматически делался абзац, тоесть эхо было на 1 строчку выше, пробовал верт. табуляцию \v как в книжке написано, но не помогло, поэтому поменял на cscanf_s, абзац не делается, но после нажания Backspace вводится одно и тоже число до конца цикла и все, введенные числа не стирает, а если его не нажимать, то все нормально...
Надо отделять мух от котлет.
Есть потоки std{in,out,err}: это такие штуки, из которых можно доставать или совать в них байты. Откуда они там берутся и куда пропадают — это языка C не касается.
Это не scanf печатает на экран твоё число при вводе. Это эхо терминала.
Как его отключать http://stackoverflow.com/a/1455007
Есть потоки std{in,out,err}: это такие штуки, из которых можно доставать или совать в них байты. Откуда они там берутся и куда пропадают — это языка C не касается.
Это не scanf печатает на экран твоё число при вводе. Это эхо терминала.
Как его отключать http://stackoverflow.com/a/1455007
Слава Глушенко
Можно как-то отменить это эхо?
Похожие вопросы
- 1. Найти все совершенные числа2. Определить во введенном числе кол-во нечетных чисел и среднее арифметическое четных.
- Как сделать скриншет и вырезать из него определенную область и сохранить в файл???
- Предложите алгоритм нахождения количества максимальных чисел из трех введенных чисел.
- Помогите, нужен код на ассемблере. Вывод меньшего из введенных чисел
- C++, написать программу, цикл for Программа, которая определяет является ли введенное число простым.
- Помогите с кодом, нужно понять являются ли 3 введенных числа Арифметической прогрессией, мой код выдает ошибку
- Помогите с лабораторной на языке С. Программа должна рассчитать сколько раз изменился знак во вводимых числах.
- Си, getchar() Изучаю самостоятельно Си, сейчас пытаюсь читать Кернигана и Ритчи (3-ье издание). Буксую конкретно
- как ввести и вывести числа? Язык Си
- C++, почему не выводится на экран текст: Введенное Вами число - простое.