2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 11:44 
Аватара пользователя


31/07/16
106
1. не понял зачем пишут аргументы какие-то у функции main
2. и еще не понял, что такое и зачем нужен массив флагов

смотрел лекцию-- https://vk.com/fave?section=likes_posts&z=video-30666517_456239620/2fd1001248f51fdb3b/pl_post_-30666517_1484483 , но пока что не врубаюсь

тот мужик, ведущий занятие работает в текстовом редакторе, не понимаю: почему он именно в нем работает, а не в среде к примеру ВижуалСтудио, там же есть отладчик и еще можно смотреть, чему равняется переменная на каком шаге (или это тоже к отладчику относится?) ?

а вот код с тем самым аргументом:
код: [ скачать ] [ спрятать ]
Используется синтаксис C
#include<stdio.h>
 
.......
.......
 
void validateFlags( const char * const flags[], const int const lenght )
{
        for(int i = 1; i < lenght ; i++ )
        {
                for(int j = 0; j < allowedFlagsLenght; j++)
                {
                        printf("Arg input: %s\n, Allowd arg: %s", flags[i], allowedFlags[j]);
                }
        }
}
 
int main( const int const argc, const char * const argv[] )
 {
        if( argc > 1 ) validateFlags( argv, argc );
        return 0;
 }
 


-- 23.06.2017, 11:54 --

Romashka97 в сообщении #1228728 писал(а):
1. не понял зачем пишут аргументы какие-то у функции main

Кажись нашел: аргументы функции main - это аргументы командной строки. Это и есть валидатор аргументов?

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 12:02 


21/10/15
196
Когда вы открываете какой-нибудь документ, например текст во ворде, как вы думаете, откуда ворд узнаёт, какой файл ему открыть?
Скорее всего имя файла передаётся ему в аргументах
Возможно, там не на C++ написано, но на других языках принцип тот же.

Ну и куча других применений.

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 12:07 
Заслуженный участник


09/05/12
25179
Да, аргументы main() - это способ передачи программе информации о параметрах, заданных в командной строке (а также о названии исполнимого файла программы).

Валидатор аргументов - это нечто, предназначенное для проверки корректности аргументов.

В названии темы указан C, а смотрите Вы видеоролик про C#. Это проявление Вашей безалаберности или Вы действительно не понимаете, что это два принципиально разных языка?
Romashka97 в сообщении #1228728 писал(а):
тот мужик, ведущий занятие работает в текстовом редакторе, не понимаю: почему он именно в нем работает, а не в среде к примеру ВижуалСтудио, там же есть отладчик и еще можно смотреть, чему равняется переменная на каком шаге (или это тоже к отладчику относится?) ?
Вообще говоря, правильно делает. Обучение - это одно, работа уже понимающего, что происходит, человека - немного другое.

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 12:15 
Заслуженный участник


04/03/09
906
Pphantom в сообщении #1228737 писал(а):
В названии темы указан C, а смотрите Вы видеоролик про C#.

Не не, там чистый Си, всамделишный.
Romashka97 в сообщении #1228728 писал(а):
тот мужик, ведущий занятие работает в текстовом редакторе, не понимаю: почему он именно в нем работает, а не в среде к примеру ВижуалСтудио, там же есть отладчик и еще можно смотреть, чему равняется переменная на каком шаге (или это тоже к отладчику относится?) ?

Во первых, в видео можно углядеть линукс, так что никаких вижуал студий. Во-вторых, простенькие программки хоть в блокноте можно писать. В третьих, Sublime Text - это вам не блокнот, а оченно мощный текстовый редактор, прям самый лучший.
А код, который вы привели, выглядит весьма странно

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 12:19 
Аватара пользователя


31/07/16
106
se-sss,Pphantom,12d3, спасибо!

-- 23.06.2017, 12:20 --

Romashka97 в сообщении #1228743 писал(а):
А код, который вы привели, выглядит весьма странно

Я просто не дописал его, думал, что остальное не важно.

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 12:22 
Заслуженный участник


09/05/12
25179
12d3 в сообщении #1228742 писал(а):
Не не, там чистый Си, всамделишный.
Да, действительно. Я посмотрел на заглавие, а ролик запускать не стал.

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 12:29 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
А ещё в вашем коде есть слово lenght (трижды). Оно существует в английском, но уверен, вы всё-таки хотели использовать length ;-)

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 12:29 
Заслуженный участник


04/03/09
906
Romashka97 в сообщении #1228743 писал(а):
Я просто не дописал его, думал, что остальное не важно.
Я глянул ролик, и понял, что ваш код - это какой-то промежуточный этап. А то он ничего не валидирует, хотя заявлено, что должен. Ну и const int const length - это прекрасно.

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 12:32 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
lenght, 12d3! lenght и только так! ;-D

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 14:13 
Аватара пользователя


31/07/16
106
12d3 в сообщении #1228748 писал(а):
Ну и const int const length - это прекрасно.

Т.е. здесь что-то не так?(вторая const лишняя)

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 14:50 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Romashka97 в сообщении #1228789 писал(а):
Т.е. здесь что-то не так?(вторая const лишняя)
Сами-то подумайте.

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение23.06.2017, 14:56 
Заслуженный участник


04/03/09
906
Romashka97 в сообщении #1228789 писал(а):
Т.е. здесь что-то не так?(вторая const лишняя)

Или первая. const int const length - это то же самое, что int const length и const int length. Т.е., компилятор такое скушает, но зачем так делать? Сейчас проверил, даже const const int const const const x = 5; прокатывает. :D
Однако, если из const char * const argv[] выкидывать const(хоть первый, хоть второй), то смысл уже изменится.

 Профиль  
                  
 
 Re: что такое валидатор аргументов? (на си)
Сообщение07.07.2017, 01:00 


27/11/10
206
Лучше всего запомнить, что const будет относится к тому, что стоит перед ним (да, противоречит логике чтения). const char * const argv[] эквивалентно char const * const argv[], но второй вариант точно не даст запутаться в const char * s[], char const * s[], char * const s[].

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group