[Powered by Google Translate] [Kommandolinjeargumenter] [Christopher Bartholomew - Harvard University] [Dette er CS50 - CS50.TV] En nyttig funktion for et program er at acceptere brugerinput. Indtil videre har vi undersøgt nogle funktioner inden for CS50 biblioteket at acceptere brugerinput, såsom "få strengen" som beder brugeren, mens programmet kører, efter en streng. Men der er tilfælde, hvor du ønsker at give dit program input før det rent faktisk kører. På denne måde behøver du ikke at spørge yderligere oplysninger fra din bruger under udførelse af en enkel opgave. Tag for eksempel mv eller flytte kommandoen i UNIX. Denne kommando gør det muligt at flytte en fil fra et sted til et andet. Ifølge de manualsider, accepterer mv to kommandolinjeargumenter: den fil, der flyttes, og placeringen af ​​filen bliver flyttet til. Så dette eksempel har en kommando med to argumenter. Så hvordan kan vi fortælle vores C-program til at udnytte disse kommandolinjeargumenter? Tja, det viser sig, at main, som vi bruger i alle C-programmer, har en hemmelighed. Main accepterer to parametre: argc og argv. Lad os gå over disse vilkår. Den første parameter, argc, der står for argument tæller, har en datatype heltal. Den argc parameter indeholder antallet af argumenter, herunder kommando. I vores flytte kommandoen, selvom vi kun har to argumenter vist argc værdi vil være 3. Den anden parameter, argv, der står for argument vektor, er en vifte af char pegepinde, der peger på strenge. Dette betyder, at hvert element i argv, fra nul, indeholder kommandoen og argumenter. For eksempel, argv [0], som jeg vil henvise til som argv nul, vil altid indeholde kommandoen der køres - i dette tilfælde. mv argv [1] vil indeholde det første argument, file.txt, og argv [2] vil indeholde det andet argument, ~ / CS50 /. Den sidste argument argv vil altid være null. Så lad os gennemføre disse kommandolinjeargumenter. I tidligere øvelser, placeret vi ugyldig, betyder ingenting, som vigtigste er parameter. Men for for os at bruge kommandolinje-argumenter, vi nødt til at fjerne ugyldige og sted inde i main int argc, char * argv []. Nu, at få adgang til hele elementet fra argv, som er dine argumenter, kan du blot gentage, eller loop gennem arrayet som denne. Så inde i hoved krop, vil vi gå videre og skriv en for-løkke: for (int i = 0; i . Så lad os kompilere og køre og give det et virkeligt argument. Og som vi kan se, har vi nu den nøjagtige placering af hver enkelt char i argumentet. Så det er det. Jeg er Christopher Bartholomew, det er CS50. [CS50.TV]