1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:02,870 >> DAVID J. MALAN: Suppose now that we want to print all of the command line 3 00:00:02,870 --> 00:00:05,900 arguments that a user types at the prompt and not just the first such 4 00:00:05,900 --> 00:00:08,710 word that he or she types after the program's name. 5 00:00:08,710 --> 00:00:12,480 Well, to do this we simply need a familiar construct, a loop, and A 6 00:00:12,480 --> 00:00:14,070 familiar printf statement. 7 00:00:14,070 --> 00:00:16,750 So let's combine the two-- 8 00:00:16,750 --> 00:00:17,670 for. 9 00:00:17,670 --> 00:00:22,210 >> And now I want to iterate over all of the command line arguments in ARGV. 10 00:00:22,210 --> 00:00:25,300 Now fortunately, I have access to the total number in ARGC. 11 00:00:25,300 --> 00:00:26,830 So let's start there. 12 00:00:26,830 --> 00:00:35,140 >> int i get 0; i is less than argc ; i++. 13 00:00:35,140 --> 00:00:38,170 Now the looping construct I've set up here is simply going to integrate from 14 00:00:38,170 --> 00:00:42,800 zero on up to the total number of arguments in ARGV. 15 00:00:42,800 --> 00:00:45,580 And now we need to something within each iteration of this loop. 16 00:00:45,580 --> 00:00:50,430 Let's, quite simply, print out the i-th such argument in ARGV. 17 00:00:50,430 --> 00:00:57,960 >> Open bracket close bracket printf %s backslash n close quote comma. 18 00:00:57,960 --> 00:00:59,830 And now I need to plug in the value. 19 00:00:59,830 --> 00:01:04,430 So if I want the i-th argument in ARGV, that can be expressed as ARGV 20 00:01:04,430 --> 00:01:08,370 bracket i , close parenthesis, semicolon. 21 00:01:08,370 --> 00:01:11,930 Let's save the file, compile it, and run it. 22 00:01:11,930 --> 00:01:15,980 >> Make ARGV1 dot slash ARGV1. 23 00:01:15,980 --> 00:01:19,150 But before I hit enter, I should probably provide some additional words 24 00:01:19,150 --> 00:01:20,320 at the command prompt. 25 00:01:20,320 --> 00:01:22,710 So I'm going to something like [? foo, ?] 26 00:01:22,710 --> 00:01:24,050 bar, and baz. 27 00:01:24,050 --> 00:01:26,570 And now I'm going to hit Enter. 28 00:01:26,570 --> 00:01:30,340 As expected, I see not only the program's name, which is in ARGV0. 29 00:01:30,340 --> 00:01:32,880 I also see [? foo, ?] bar and baz. 30 00:01:32,880 --> 00:01:34,597