Nano Hash - криптовалюты, майнинг, программирование

Чтение целых чисел в ADT из стандартного ввода

Это моя абстрактная структура данных

 typedef struct {
    int *items;
    int size;
 } List;

Я хотел бы, чтобы пользователь вводил целые числа в одну строку, например

  a.out 
  12 14 2 8 9

и прочитать их в списке. Я понимаю, как добавить в список, я думаю, что я не понимаю, как получить целые числа из одной строки ввода

Изменить: извините, но я имел в виду использование чего-то вроде scanf без аргументов командной строки.


Ответы:


1

1. Определение вашего main должно быть int main(int argc,char **argv)

2. Числа будут аргументами командной строки (проверьте значение argc больше, чем 1 перед использованием argv ).

3. argv[1], argv[2] будут иметь эти числа, но в виде строки.

4. Преобразуйте их в целые числа с помощью функций atoi или sscanf и сохраните в элементах структуры по своему усмотрению.

РЕДАКТИРОВАТЬ

Изменить: извините, но я имел в виду использование чего-то вроде scanf без аргументов командной строки.

Вы можете использовать fgets , токенизировать строку с помощью strtok, а затем преобразовать и сохранить в целочисленную переменную.

12.10.2015

2

Вы должны использовать входные аргументы, такие как:

Ваша основная функция будет выглядеть так: int main (int argc, char *argv[] )

В этом случае вы можете добавить свой аргумент в командную строку, как если бы вы

./а.выход 12 14 2 8 9

И вы можете получить доступ к этим аргументам с помощью argv[1], argv[2], argv[3],...

и вы можете перебрать количество аргументов, предоставленных пользователем, которые содержатся в переменной argc

пример доступа к первому аргументу:

инт я;

я = atoi (argv [1]);

12.10.2015
  • Извини, чувак, я перепутал свой вопрос. Я хотел попробовать это с помощью scanf или fgets, а не аргументов командной строки. 12.10.2015
  • попробуйте использовать scanf_s, это более безопасная версия 12.10.2015
  • @HocineDJEMAI Это не переносимо. 13.10.2015
  • @ameyCU, я ценю ваш комментарий, есть ли другое решение для переносимости и безопасности одновременно для этой функции, спасибо 13.10.2015
  • @HocineDJEMAI Я не думаю, что с fgets или даже с scanf что-то не так. Но вам нужно продолжать проверять их возвращаемые значения на предмет успеха. 13.10.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..