Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2021, 21:41   #1
Vanjaa
Новичок
Джуниор
 
Регистрация: 06.03.2021
Сообщений: 1
По умолчанию getchar съедает первый символ ввода

Это моя программа:
Код:
int main()
{
    int c;
    int mass[100];
    int counter = 0;
    for (int i = 0; i < 10; i++){
        c = getchar();
        if(c == '\n') break;
        scanf("%d", &mass[i]);
        counter++;
    }
    for (int i = 0; i < counter; i++){
        printf("%d ", mass[i]);
    }
    return 0;
}
каждый раз, когда я запускаю его, он работает нормально, но съедает первый символ моего ввода.
getchar использую для остановки цикла клавишей Enter, если знаете иной способ, подскажите пожалуйста.
Спасибо, что уделили мне время

Последний раз редактировалось BDA; 08.03.2021 в 07:02.
Vanjaa вне форума Ответить с цитированием
Старый 08.03.2021, 07:23   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Используйте кнопку CODE для оформления кода.
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char c;
    int mass[10];
    int counter = 0;
    do {
        c = getchar();
    } while (c == ' ');
    if (c != '\n') {
        ungetc(c, stdin);
        for (int i = 0; i < 10; i++) {
            scanf("%d", &mass[i]);
            counter++;
            do {
                c = getchar();
            } while (c == ' ');
            if(c == '\n') break;
            ungetc(c, stdin);
        }
    }
    for (int i = 0; i < counter; i++) {
        printf("%d ", mass[i]);
    }
    return 0;
}
Можно вводить числа через любое количество пробелов между, до и после.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заменить первый символ в строке brownb Общие вопросы Delphi 2 18.09.2017 11:35
первый и последний символ в строке AndreyF Общие вопросы Delphi 10 03.08.2016 12:09
Как найти первый символ в в строке? Vania19961712 Общие вопросы C/C++ 5 08.01.2014 17:17
Combobox перескакивает на первый символ warder49 Компоненты Delphi 1 19.07.2013 15:18
Первый символ в Edit-e artemavd Общие вопросы Delphi 2 24.09.2009 21:35