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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
#1

Передача аргументов через консоль - C++

04.09.2013, 18:46. Просмотров 1785. Ответов 36
Метки нет (Все метки)

Подскажи пожалуйста, вот такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
using namespace std;
int main (int argc, char *argv[])
{
    int i;
    vector<int>vi;
    vector<char>vc;
    for(i=1;i<argc;++i)
    {
        cout<<*argv[i]<<" ";
    }
    system("pause");
    return 0;
}
Почему если передавать аргумент вида *(звездочка), то программа выводит всякий мусор. С другими аргументами все ОК, проблема только в этом. Можно ли вообще передать *(звездочку) в виде аргумента???
P.S. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 18:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Передача аргументов через консоль (C++):

Передача аргументов в ф-ию - C++
void test(const T&amp; a) {} Это понятно, а что это за запись: void test(T const&amp; a) {} И как понять ссылку на ссылку,...

передача аргументов - C++
Здравствуйте,объясните пожалуйста,на примерах кода,что означает передача аргументов по ссылке, по значению,передача копий аргументов?

Const передача аргументов - C++
Здравствуйсте. Вот, пишу шаблонную структуру данных с произвольным компоратором, возник вопрос, а как мне запретить компоратору изменять...

Передача аргументов функции - C++
Как передать функции переменную неизвестного типа?

Передача аргументов в конструктор - C++
У меня есть в классе конструктор по умолчанию: Port(const char * br = &quot;none&quot;,const char * st = &quot;none&quot;,int b = 0); Я создал производный...

Передача аргументов функции - C++
В книге Стенли Липпмана C++ Primer дошел до программы, которая выполняет замену слов в одном файле, которые указаны в другом. Например, ...

36
coloc
погромист
411 / 247 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.09.2013, 19:07 #2
Nikko12, вообще не понял о чем ты. Может проблема в том что ты разименововаеш указатель на строку?
cout<<*argv[i]<<" "; ты об этой звездочке?
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
04.09.2013, 20:37  [ТС] #3
coloc, Нет, если в командной строке написать: f:\\1.exe 1 + 2 - 3 * 4, где 1.exe иполняемая программа приведенная выше и ей передавать аргументы 1, +, 2, -, 3, *, 4, то при достижении аргумента *(звездачка), программа выведет мусор, например: "1 + 2 - 3 1 1 2 3 a A c C C C C C c D G g H I I J L M n P P P P P P R R R S
s S S V X └ ─ ╠ ═ ╬ ╧ ╧ ╤ ▌ ь ё Ї ¤ * * * 4 Для продолжения нажмите любую клавишу . . ."
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.09.2013, 03:50 #4
Цитата Сообщение от Nikko12 Посмотреть сообщение
если в командной строке написать: f:\\1.exe 1 + 2 - 3 * 4
...
0
Миниатюры
Передача аргументов через консоль  
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
05.09.2013, 07:25  [ТС] #5
alsav22, Почему же у меня тогда выводится мусор??
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
05.09.2013, 07:31  [ТС] #6
Вот, как получается у меня:
0
Миниатюры
Передача аргументов через консоль  
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.09.2013, 07:43 #7
На моём скрине видно, как я файл запускаю из командной строки. А вы как это делаете (на вашем скрине не видно)?
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
05.09.2013, 17:49  [ТС] #8
Виноват, вот:
0
Миниатюры
Передача аргументов через консоль  
Raali
639 / 343 / 42
Регистрация: 06.07.2013
Сообщений: 1,107
Завершенные тесты: 1
05.09.2013, 18:00 #9
Цитата Сообщение от Nikko12 Посмотреть сообщение
cout<<*argv[i]<<" ";
попробуй

C++
1
cout<<argv[i]<<" ";
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
05.09.2013, 18:14  [ТС] #10
Raali, Тоже не работает, только больше мусора вывел

Добавлено через 44 секунды
Скрин приложить Raali, ?
0
Raali
639 / 343 / 42
Регистрация: 06.07.2013
Сообщений: 1,107
Завершенные тесты: 1
05.09.2013, 18:59 #11
видимо правда со звездочкой какая то магия
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
05.09.2013, 19:08  [ТС] #12
Raali, Но почему, что в этом символе такого особенного?????
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.09.2013, 20:08 #13
Nikko12, поэкспериментируйте. Попробуйте звёздочку первым параметром, единственным параметром и пр. Чтобы было больше информации к размышлению.
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
05.09.2013, 20:35  [ТС] #14
alsav22, Я экспериментировал, не важно каким параметром по счету идет аргумент *(звездочка), если он встречается программа выводит мусор, если его нету, работает хорошо. Если интересует могу приложить скрины с параметрами экспериментов.

Добавлено через 5 минут
Это как-то может зависеть от ОС???
0
Somebody
2798 / 1609 / 149
Регистрация: 03.12.2007
Сообщений: 4,204
Завершенные тесты: 3
05.09.2013, 20:35 #15
Какой компилятор, какая версия?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 20:35
Привет! Вот еще темы с ответами:

Передача аргументов в функцию - C++
При сборке кода выдает ошибку (её я написал в комментарий). Что значит ошибка? #include &lt;iostream&gt; #include &lt;math.h&gt; using...

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

Передача аргументов функции - C++
Всем привет. Писал код не зная, правильно ли это. В общем застрял на составлении прототипов функции и функции мэин. И ещё, можно ли так как...

Передача аргументов по значению - C++
как сделать что бы все аргументы передавались по значению то есть что бы содержимым параметров являлись копии значений соответствующих...


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

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

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