Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> argc & argv[] 
V
    Опции темы
Letchik
Дата 12.6.2010, 09:18 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 5.1.2010
Где: UGTB

Репутация: нет
Всего: нет



Привет!
Не буду спрашивать зачем нужны эти параметры, но зато буду спрашивать почему они не работают.
Чтобы я не вводил, argc всегда равен единице. Вобщем, смотрите сами:

Код

#include "stdio.h"

int main(int argc, char *argv[])
{
    char buf[256];
    int i;
    while(1)
    {
        scanf("%s", buf);
        printf("argc = %d\n", argc);
        for (i = 1; i < argc; i++)
            printf("argv = %s\n", argv[i]);
    }

    return 0;
}

Что неправильно в этом коде?
PM MAIL Skype   Вверх
Trotter
Дата 12.6.2010, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.10.2006
Где: Нижний Новгород

Репутация: нет
Всего: 0



А я спрошу, зачем они нужны вообще ?
Думаю при объяснение выяснится почему он равно постоянно 1ки
PM MAIL ICQ   Вверх
Letchik
Дата 12.6.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 5.1.2010
Где: UGTB

Репутация: нет
Всего: нет



argc - это количество параметров введёных в командную строку.
argv[] - это массив из параметров.
К примеру я ввёл:

Код

argc does not work


Тогда:
Код
argc = 4;

argv[0] = <name of the program>
argv[1] = "argc"
argv[2] = "does"
argv[3] = "not"
argv[4] = "work"


Это сообщение отредактировал(а) Letchik - 12.6.2010, 10:38
PM MAIL Skype   Вверх
smalcom
Дата 12.6.2010, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



Цитата

argc = 4;

argc = 5;


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
Trotter
Дата 12.6.2010, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.10.2006
Где: Нижний Новгород

Репутация: нет
Всего: 0



ну вот теперь понятно почему его прога выводит 1ку постоянно)
PM MAIL ICQ   Вверх
Ozerich
Дата 12.6.2010, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

Репутация: 4
Всего: 5



Цитата

ну вот теперь понятно почему его прога выводит 1ку постоянно) 

Потому что ты программу запускаешь без параметров. А argc = 1 потому что первый параметр у любой программы это полный путь к ней.

Это сообщение отредактировал(а) Ozerich - 12.6.2010, 14:48
--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
djamshud
Дата 12.6.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



>первый параметр у любой программы это полный путь к ней

Не полный, а тот, через который была запущена программа.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
azesmcar
Дата 12.6.2010, 17:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(Letchik @  12.6.2010,  10:37 Найти цитируемый пост)
argc - это количество параметров введёных в командную строку.

Вот именно, в коммандую строку а не в stdin. Открываешь cmd.exe (Start->Run->cmd.exe нажимаем кнопку enter, потом отпускаем).
вводишь
Цитата

d:\myprojects\project1\debug\project1.exe argv1 argv2

а в самой программе выводишь значения массива argv. Должно проясниться.
PM   Вверх
Letchik
Дата 13.6.2010, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 5.1.2010
Где: UGTB

Репутация: нет
Всего: нет



аааааа!
Теперь всё понял!
Спасибо!
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.