[Powered by Google Translate] [Kommandoradsargument] [Christopher Bartholomew - Harvarduniversitetet] [Detta är CS50 - CS50.TV] En användbar funktion för ett program är att acceptera användarinmatning. Hittills har vi utforskat vissa funktioner inom CS50 biblioteket att acceptera användarinmatning, såsom "få sträng," som uppmanar användaren, medan programmet körs, för en sträng. Det finns dock fall där man vill ge ditt program ingång innan den faktiskt körs. På så sätt behöver du inte be ytterligare uppgifter från ditt användarnamn samtidigt utför en enkel uppgift. Ta till exempel mv eller flytta kommando i UNIX. Detta kommando gör det möjligt för användaren att flytta en fil från en plats till en annan. Enligt manualsidorna accepterar mv två kommandoradsargument: den fil som flyttas och platsen som filen flyttas till. Så detta exempel har ett kommando med två argument. Så hur berättar vi vår C-program för att använda dessa kommandoradsargument? Tja, visar det sig att huvud, som vi använder i alla C-program, har en hemlighet. Huvud accepterar två parametrar: argc och argv. Låt oss gå över dessa villkor. Den första parametern, argc, som står för argumentet räkna, har en datatyp heltal. Den argc parametern innehåller många argument, bland annat kommandot. I vår flytt kommando, även om vi bara har två argument visas, argc värde blir 3. Den andra parametern, argv, som står för argumentet vektor, är en rad röding pekare som pekar på strängar. Detta innebär att varje element i argv, utgående från noll, innehåller kommandot och argument. Till exempel argv [0], som jag ska hänvisa till som argv noll, alltid innehåller det kommando som körs - i detta fall, mv. argv [1] kommer att innehålla det första argumentet, file.txt, och argv [2] kommer att innehålla det andra argumentet, ~ / CS50 /. Den sista argument argv kommer alltid att vara noll. Så låt oss genomföra dessa kommandoradsargument. I tidigare övningar, placerade vi ogiltiga, dvs ingenting, som huvudsaklig s parameter. Men för att vi använder kommandoradsargument, Vi måste ta bort ogiltiga och plats inuti huvud int argc, char * argv []. Nu, för att komma åt hela element från argv, som är dina argument, Du kan enkelt iterera eller slinga, genom uppsättningen så här. Så inne i huvud kropp, kommer vi att gå vidare och skriva en for-loop: for (int i = 0; i . Så, låt oss kompilera och köra och ge det ett aktuellt argument. Och som vi kan se har vi nu den exakta platsen för varje enskild röding i argumentet. Så det är det. Jag är Christopher Bartholomew, det är CS50. [CS50.TV]