Перайсьці да зьместу

Argc і argv (C++)

Зьвесткі зь Вікіпэдыі — вольнай энцыкляпэдыі

argc і argvаргумэнты да галоўнай функцыі «main» у мове праграмаваньня C++.[1]:

Прыклад выкарыстаньня argc і argv

[рэдагаваць | рэдагаваць крыніцу]

Даволі зручна заносіць інфармацыю ў праграму падчас яе выкананьня. Пры гэтым зьвесткі ў праграму заносяцца праз аргумэнты каманднага радку. У функцыі «main» прадугледжаныя два спэцыяльна ўбудаваныя аргумэнты: «argc» і «argv». Argc утрымлівае колькасьць аргумэнтаў, напісаных у камандным радку (argc — цэлалікавы тып зьвестак «int»). Аргумэнт argv — гэта паказальнік да масіву паказальнікаў сымбальнага тыпу ў камандным радку (argv — сымбальны тып зьвестак «char»). Напрыклад, наступная праграма выводзіць «Hello», а затым праз прабел вашае імя, калі вы ўвялі імя ў праграму:

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
  if (argc != 2) {                                            
	  printf("Вы забыліся надрукаваць сваё імя.\n");   
	  exit(1);                                               
                                                              
	  }                                                    
                                                               
  printf("Hello %s", argv[2]);                                
  return 0;
}
  • Тлумачэньне. Пасьля кампіляцыі праграмы неабходна зайсьці ў камандны радок (для Windows-кампілятараў), або тэрмінал (для Linux-кампілятараў), перайсьці ў дырэкторыю, дзе зьмяшчаецца скампіляваная праграма і надрукаваць яе назву (хай праграма называецца «arg.exe»), а затым сваё імя, напрыклад:

arg Erka

Вывад будзе наступным:

Hello Erka

Калі ўвод такі:

arg

То праграма выведзе радок:

Вы забыліся надрукаваць сваё імя

таму што першым аргумэнтам лічыцца назва праграмы, а другім — імя. А па ўмове

if (argc != 2)

колькасьць аргумэнтаў не павінна быць няроўнай двум.[2]

  1. ^ Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 144; ISBN 0078824761
  2. ^ Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 145; ISBN 0078824761