[Powered by Google Translate] [Ορίσματα της γραμμής εντολών] [Christopher Βαρθολομαίος - Πανεπιστήμιο του Χάρβαρντ] [Αυτό είναι CS50 - CS50.TV] Ένα χρήσιμο χαρακτηριστικό για ένα πρόγραμμα είναι να δεχτεί είσοδο του χρήστη. Μέχρι στιγμής, έχουμε διερευνήσει κάποιες λειτουργίες μέσα στη βιβλιοθήκη CS50 να δεχτεί είσοδο του χρήστη, όπως "να πάρει σειρά," η οποία ζητά από το χρήστη, ενώ η εφαρμογή εκτελείται, για ένα string. Ωστόσο, υπάρχουν περιπτώσεις όπου θέλετε να τροφοδοτήσει το πρόγραμμά σας πριν από την πραγματική λειτουργία. Με αυτό τον τρόπο, δεν χρειάζεται να ζητήσει πρόσθετες πληροφορίες από το χρήστη εκτελώντας μια απλή εργασία. Πάρτε, για παράδειγμα, η εντολή mv ή κίνηση στο UNIX. Αυτή η εντολή επιτρέπει στο χρήστη να μετακινήσει ένα αρχείο από μια τοποθεσία σε μια άλλη. Σύμφωνα με τις σελίδες manual, mv δέχεται δύο ορίσματα γραμμής εντολών: Το αρχείο που είναι να μετακινηθεί η θέση και το αρχείο που μεταφέρθηκε στο. Έτσι, αυτό το παράδειγμα έχει μια εντολή με δύο επιχειρήματα. Επομένως, πώς θα πείτε C πρόγραμμά μας να αξιοποιήσει αυτά τα ορίσματα της γραμμής εντολών; Λοιπόν, αποδεικνύεται ότι το κύριο, το οποίο χρησιμοποιούμε σε όλα τα προγράμματα C, έχει ένα μυστικό. Κύρια δέχεται δύο παραμέτρους: argc και argv. Ας πάει πάνω από αυτούς τους όρους. Η πρώτη παράμετρος, argc, που σημαίνει καταμέτρηση επιχείρημα, έχει έναν τύπο δεδομένων του ακεραίου. Η παράμετρος argc περιέχει τον αριθμό των επιχειρημάτων, συμπεριλαμβανομένου του εντολή. Στην εντολή κίνηση μας, αν και έχουμε μόνο δύο επιχειρήματα που εμφανίζεται, argc τιμή θα είναι 3. Η δεύτερη παράμετρος, argv, που σημαίνει διάνυσμα επιχείρημα, είναι μια σειρά από δείκτες που char δείχνουν χορδές. Αυτό σημαίνει ότι κάθε στοιχείο argv, ξεκινώντας από το μηδέν, περιέχει την εντολή και τα επιχειρήματα. Για παράδειγμα, argv [0], η οποία θα αναφερθώ ως argv μηδέν, θα περιέχει πάντα την εντολή που τρέχει - στην περίπτωση αυτή, mv. argv [1] θα περιέχει το πρώτο επιχείρημα, file.txt, και argv [2] θα περιέχει το δεύτερο επιχείρημα, ~ / CS50 /. Το τελευταίο επιχείρημα του argv θα είναι πάντα null. Ας εφαρμόσουν αυτές τις ορίσματα της γραμμής εντολών. Σε προηγούμενες ασκήσεις, που τοποθετείται κενό, δηλαδή τίποτα, ως κύρια παράμετρος του. Ωστόσο, για να μπορέσουμε να χρησιμοποιήσει ορίσματα της γραμμής εντολών, πρέπει να αφαιρέσετε μέσα κενό και ο τόπος της κύριας int argc, char * argv []. Τώρα, για να αποκτήσετε πρόσβαση σε ολόκληρο το στοιχείο από argv, τα οποία είναι τα επιχειρήματά σας, μπορείτε απλά να επαναλάβει, ή βρόχο, μέσω του πίνακα, όπως αυτό. Έτσι, μέσα από το σώμα του κυρίως, θα πάμε για να πάει μπροστά και να πληκτρολογήσετε ένα για βρόχο: for (int i = 0? i . Έτσι, ας μεταγλώττιση και εκτέλεση και παρέχει ένα πραγματικό επιχείρημα. Και, όπως μπορούμε να δούμε, τώρα έχουμε την ακριβή τοποθεσία του κάθε char στο επιχείρημα. Έτσι, αυτό είναι όλο. Είμαι Christopher Βαρθολομαίος? Αυτό είναι CS50. [CS50.TV]