Đối số dòng lệnh - Short Flashcards
Chúng tôi đã thu thập dữ liệu đầu vào của người dùng nếu chúng tôi cần nó
Phần khai báo của hàm không hẳn là chỉ duy nhất mình phần khai báo ở đầu không có dấu ngoặc, nó cũng có thể được dùng ở phần đầu của phần định nghĩa hàm trước dấu ngoặc
Tag
Cho đến nay, tất cả các chương trình của bạn đã bắt đầu khá giống nhau.
int main(void)
{
Vì chúng tôi đã thu thập thông tin đầu vào của người dùng thông qua lời nhắc trong chương trình, chúng tôi không cần sửa đổi phần khai báo này của hàm main().
Nếu chúng tôi muốn người dùng cung cấp dữ liệu cho chương trình của chúng tôi trước khi chương trình bắt đầu chạy, chúng tôi cần một biểu mẫu mới.
. Để thu thập các đối số dòng lệnh được gọi là từ người dùng, hãy khai báo main là:
int main(int argc, string argv[]) {
. Hai đối số đặc biệt này cho phép bạn biết người dùng đã cung cấp dữ liệu gì tại dòng lệnh và họ đã cung cấp bao nhiêu dữ liệu.
và nhân tiện, bạn nên biết,
rằng bạn có thể gọi argc bất cứ điều gì bạn muốn.
Bạn có thể gọi argv bất cứ điều gì bạn muốn.
Đây chỉ là những tên thông thường mà chúng tôi sử dụng cho chúng– số đối số,
và như chúng ta sẽ thấy trong phần thứ hai, argument vectơ, argv.
Nhưng bạn không cần phải gọi chúng là argc và argv nếu bạn không muốn,
nhưng thông thường, đó là những gì chúng tôi làm
Tag
Bây giờ chú ý chúng ta không đếm có bao nhiêu thứ
người dùng gõ sau tên chương trình.
Bản thân tên chương trình được coi là một đối số dòng lệnh.
argc (argument count)
Biến kiểu số nguyên này sẽ lưu trữ số
đối số dòng lệnh mà người dùng đã nhập khi chương trình được thực thi.
command argc
./greedy 1
./greedy 1024 cs50 3
argc (argument count)
Biến kiểu số nguyên này sẽ lưu trữ số
đối số dòng lệnh mà người dùng đã nhập khi chương trình được thực thi.
command argc
./greedy 1
./greedy 1024 cs50 3
argv (argument vector)
Dãy này lưu trữ, một chuỗi cho mỗi phần tử, văn bản thực tế mà người dùng đã nhập vào dòng lệnh khi chương trình được thực thi.
Phần tử đầu tiên của argv luôn được tìm thấy tại argv[0]. Phần tử cuối cùng của argv luôn được tìm thấy tại argv[argc-1].
Bạn có thấy tại sao không?