[Powered by Google Translate] [Command-Line Argumente] [Christopher Bartholomew - Harvard Universiteit] [Hierdie is CS50 - CS50.TV] 'N nuttige funksie vir 'n program is om die toevoer van die gebruiker te aanvaar. So ver, het ons ondersoek sommige funksies binne die CS50 biblioteek toevoer van die gebruiker, soos om te aanvaar "kry string," wat vra die gebruiker, terwyl die aansoek hardloop, vir 'n string. Egter, is daar gevalle waar jy wil jou program om insette te lewer voordat dit is eintlik hardloop. Op hierdie manier, het jy nie nodig om addisionele inligting te vra van jou gebruiker terwyl die uitvoering van 'n eenvoudige taak nie. Neem, byvoorbeeld, die MV of skuif opdrag in UNIX. Hierdie opdrag stel die gebruiker in staat om 'n lêer van een plek na 'n ander te beweeg. Volgens die handleiding bladsye, mv twee command line argumente aanvaar: die lêer wat verskuif word en die plek waar die lêer is verskuif na. So is hierdie voorbeeld het 'n opdrag met twee argumente. So hoe weet ons ons C program hierdie command-line argumente aan te wend? Wel, dit blyk dat die hoof, wat ons in al die C-programme gebruik, het 'n geheim. Main twee parameters: argc en bevat SPASIES aanvaar. Kom ons gaan oor hierdie terme. Die eerste parameter, argc, wat staan ​​vir die argument telling, het 'n data tipe integer. Die argc parameter bevat die aantal argumente, met inbegrip van die opdrag. In ons skuif opdrag, maar ons het net twee argumente vertoon, argc se waarde sal wees 3. Die tweede parameter bevat SPASIES, wat staan ​​vir die argument vektor, is 'n verskeidenheid van char verwysings wat verwys na snare. Dit beteken dat elke element bevat SPASIES, vanaf nul, bevat die opdrag en argumente. Byvoorbeeld, bevat SPASIES [0], wat ek sal verwys as bevat SPASIES nul, sal bevat altyd die opdrag wat loop - in hierdie geval, mv. bevat SPASIES [1] sal die eerste argument, file.txt, en bevat SPASIES [2] sal die tweede argument bevat, ~ / cs50 /. Die laaste argument bevat SPASIES sal altyd null. So laat hierdie command-line argumente implementeer. In die vorige oefeninge, ons geplaas nietig, beteken niks, as hoof se parameter. Maar, ten einde vir ons opdrag-lyn argumente te gebruik, moet ons nietig en plek binnekant van die belangrikste int argc, char * bevat SPASIES [] te verwyder. Nou, om toegang te verkry tot die hele element van bevat SPASIES, wat is jou argumente, Jy kan eenvoudig iteraat, of lus, deur die skikking soos hierdie. So, binnekant van hoof se liggaam, ons gaan om voort te gaan en 'n soort vir loop: (int i = 0; i . So, kom ons stel en uit te voer en gee dit 'n werklike argument. En, soos ons kan sien, het ons nou die presiese ligging van elke karakter in die argument. So dit is dit. Ek is Christopher Bartholomew, dit is CS50. [CS50.TV]