Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Pavel1111
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 9
#1

Формат командной строки - C++

10.04.2013, 15:11. Просмотров 715. Ответов 10
Метки нет (Все метки)

Нужно выполнить задание.
Есть X потоков в которых лежит по объекту, эти объекты я в случайном порядке сую в контейнер размером Y. При заполнении контейнера, начинаю удалять самые старые объекты и делаю это бесконечно пока не нажму enter. При нажатии enter печатаю данные из контейнера в формате "ПОТОК - КОЛИЧЕСТВО ЕЛЕМЕНТОВ".

В условии сказано:
" 1. Формат командной строки 'test_app X Y'. " -что это значит?
" 2. Y - целое число (size_t) на величину которого ограничение не накладывается (в рамках ограничения типа переменной). " - что это значит?

Какой контейнер наиболее оптимален для этой задачи?

И еще. В подобных задачах при запуске программы консоль выскакивает сама (в коде я ничего для этого не пишу кроме cin>>.... ) -грамотно ли это? Может нужно писать что то типа: отобразить консоль\скрыть консоль?

Добавлено через 1 час 10 минут
Все! тема закрыта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 15:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Формат командной строки (C++):

Слияних 2 файлов в третий + строки + использование командной строки - C++
Помогите с заданием пожалуйста. Задано 2 файла, строки в которых упорядочены по алфавиту. Написать программу, осуществляющую слияние этих...

Аргументы командной строки - C++
Пытаюсь разобраться с этой штукой. У Дейтела это собственно только дополнение, а не отдельный пункт раздела так что всё написано сжато и с...

Аргументы командной строки - C++
Уважаемые форумчане, растолкуйте, пожалуйста, назначение третьего аргумента "char *const options" в функции GetOptList . Для чего он данном...

Аргументы командной строки - C++
int main(int argc,int **argv) Понял только,что argc отвечает за количество аргументов,а argv-массив указателей на строки символов.Но...

Задержка командной строки - C++
При нажатии кнопки на форме Билдера открывается командная строка, пингует айпишник и тут же закрывается. Как мне ее задержать, чтобы я...

Компиляция из командной строки - C++
Доброго времени суток. У меня к Вам вопрос по компиляции из коммандной строки. Делаю простенький .с файл hello.c: #include...

10
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.04.2013, 15:15 #2
Цитата Сообщение от Pavel1111 Посмотреть сообщение
Формат командной строки 'test_app X Y'. " -что это значит?
Это значит, что программа должна принимать 2 целых аргумента, первый будет интерпретироваться как Х, второй - как Y. Читайте про argv,argc для main().

Цитата Сообщение от Pavel1111 Посмотреть сообщение
Y - целое число (size_t) на величину которого ограничение не накладывается (в рамках ограничения типа переменной). " - что это значит?
То, что переменная объявлена будет как-то так:
C++
1
size_t Y;
И при чтении ее из списка аргументов (п.1) никаких ограничений делать не надо. Т.е. подходит любое, введенное пользователем значение.

Цитата Сообщение от Pavel1111 Посмотреть сообщение
Какой контейнер наиболее оптимален для этой задачи?
Если нужно удалять самые старые, то нужна, скорее всего, очередь std::queue

Цитата Сообщение от Pavel1111 Посмотреть сообщение
Может нужно писать что то типа: отобразить консоль\скрыть консоль?
Не заморачивайтесь на этот счет, если это не оговорено в условии.

Добавлено через 30 секунд
Цитата Сообщение от Pavel1111 Посмотреть сообщение
Все! тема закрыта.
Не успел
0
Pavel1111
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 9
10.04.2013, 15:46  [ТС] #3
Спасибо. А я подумал что ни кто не ответит даже новую тему создал..
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.04.2013, 15:53 #4
Цитата Сообщение от Pavel1111 Посмотреть сообщение
даже новую тему создал..
Это зря

Не по теме:

Не забывайте плюсовать, если что пригодилось.

0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
10.04.2013, 18:02 #5
Pavel1111, не знаю то или нет, но "test_app X Y" test_app - название приложения, X и Y понятно, я думаю все должно быть так: написал приложение, потом запускаешь командную строку, пишешь путь к своему приложению(test_app), указываешь кол-во потоков и размер контейнера. Тут тебе нужно почитать про параметры функции main, она - то и позволяет принимать данные из командной строки, где

C++
1
int argc, _TCHAR* argv[]
argc - кол-во параметров, а это массив, в твоем случае X и Y будут 1 и 2 элементом массива argv соответственно. Не знаю то это или нет, 100% уверенности нет, но если помог, буду рад. А на счет контейнера я бы предложил использовать list<T>, так как можно добавлять/удалять как в головы так и с конца.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.04.2013, 09:44 #6
Цитата Сообщение от yoghurt92 Посмотреть сообщение
я бы предложил использовать list<T>, так как можно добавлять/удалять как в головы так и с конца.
Зачем? Это же классическая очередь FIFO по заданию.
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.04.2013, 12:14 #7
Tulosba, но с STK-ой версией очереди не так удобно работать(я имею в виду вывод(приходиться удалять и добавлять элементы для вывода), а очередь это что? Это частный случай списка, так что чего-то страшного я не вижу, там так же можно использовать FIFO, исправьте если я не прав
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.04.2013, 12:39 #8
Цитата Сообщение от yoghurt92 Посмотреть сообщение
STK-ой версией
Что это?
Если нужно не просто добавлять в конец/удалять с начала, а ещё иметь всякий обвес типа вывода, то, наверное, да, лучше взять list или deque.
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.04.2013, 12:45 #9
Tulosba, опечатался STL, мне кажется, что содержимое контейнера придется же выводить, я предложил list из соображения удобства, не более.
0
Pavel1111
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 9
11.04.2013, 16:24  [ТС] #10
Я не стал сразу грузить , а если нужно осуществлять следующую логику:
добавляя новый элемент в очередь (как мы помним элемент находится в своем потоке) нужно проверить из какого потока последний элемент этой очереди и если
1. это один и то же поток, то последний элемент не удаляется
2. из разных потоков то последний элемент удаляем.
В какой то момент очередь конечно заполнится и в проверке отпадет смысл, поскольку добавляя мне все равно придется удалять последний.
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.04.2013, 16:45 #11
Pavel1111, может использовать ключ(который для каждого нового потока будет индивидуален)?
0
11.04.2013, 16:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2013, 16:45
Привет! Вот еще темы с ответами:

Вывод командной строки - C++
Как вывести на экран копию командной строки! Надо это как-то сделпть с аргументами функции main

Чтение из командной строки - C++
всем привет!такая проблема,вот таким образом обрабатываю командную строку : sscanf_s((char*)lpCmdLine,&quot;%i %i %i %i %i&quot;, &amp;q, &amp;j, &amp;k, &amp;l,...

Параметр командной строки - C++
Здрасте, здрасте!! Вопрос такой есть код: LPWSTR *szArglist; int nArgs; int i; LPWSTR temp=L&quot;/i&quot;; szArglist =...

Использование командной строки - C++
У меня есть файл по адресу D:/Faylik/data.txt и его нужно скопировать с помощью командной строки в файл D:/F/data2.txt . Подскажите, плиз,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.