[Powered by Google Translate] [Komandinės eilutės argumentai] [Christopher Baltramiejus - Harvardo universiteto] [Tai CS50 - CS50.TV] Naudinga funkcija programą yra priimti naudotojo įvesties. Iki šiol, mes ištirti kai kurias funkcijas per CS50 bibliotekoje priimti vartotojo įvestimi kaip "gauti eilutę, paragina vartotoją, o programa veikia, eilutę. Tačiau yra atvejų, kai norite suteikti savo programos indėlį , kol ji faktiškai veikia. Tokiu būdu, jums nereikia prašyti papildomos informacijos iš jūsų naudotojo vykdydama paprastas uždavinys. Paimkite, pavyzdžiui, MV arba perkelti komandą UNIX. Ši komanda leidžia vartotojui perkelti failą iš vienos vietos į kitą. Pagal vadovo puslapius, mv priima dviejų komandų eilutės argumentai: failas, kuris yra perkeltas ir vieta, failas yra perkeliamas į. Taigi šis pavyzdys komandą su dviem argumentais. Taigi, kaip mes pasakyti savo C programą naudoti šias komandų eilutės argumentus? Na, pasirodo, kad pagrindinė, kuri mes naudojame C programos, yra paslaptis. Pagrindinis priima du parametrus: argc ir argv. Eikime per šiuos terminus. Pirmasis parametras, argc, kuris reiškia argumentas skaičius, yra sveikojo skaičiaus duomenų tipas. Argc parametras yra argumentų, įskaitant komandų. Mūsų komandą Perkelti, nors mes tik du argumentai rodomas, argc vertė bus 3. Antrasis parametras, argv, kuris reiškia argumentas, vektoriaus, yra masyvas char rodykles, kad rodytų į eilutes. Tai reiškia, kad kiekvienas argv elementas, nuo nulio, yra komanda ir argumentus. Pavyzdžiui, argv [0], kurį aš jums kreiptis kaip argv nulio, visada turėti komandą, kuri yra paleisti - šiuo atveju, mv. argv [1] bus pateikta apie pirmąjį argumentą, plik.txt ir argv [2] bus pateikta apie antrąjį argumentą, ~ / CS50 /. Argv visada paskutinis argumentas yra niekinis. Todėl galime įgyvendinti šių komandų eilutės argumentai. Ankstesniais metais, mes įdėjome negaliojančiu, o tai reiškia, nieko, nes pagrindinis jo parametras. Tačiau tam, kad mums naudoti komandų eilutės argumentus, reikia pašalinti negaliojančiu ir vieta viduje pagrindinio int argc, char * argv []. Dabar atidarykite visą elementą iš argv, kurie yra jūsų argumentai, galite tiesiog kartoti, arba kilpa, per kaip tai masyvo. Taigi, viduje pagrindinis kūno, mes ketiname eiti į priekį ir įveskite for ciklas: už (int i = 0; i . Taigi, galime sukompiliuoti ir paleisti ir suteikti jai faktinis argumentą. Ir, kaip matome, mes dabar turime tikslią vietą kiekvienu atskiru char teigiant. Taigi, kad viskas. Aš tikiu, Christopher Baltramiejus; tai CS50. [CS50.TV]