Các đối số của hàm Main(). Tùy chọn dòng lệnh Chức năng Đối số main c studio trực quan

Đối số tùy chọn và được đặt tên

Đối số tùy chọn

C# 4.0 giới thiệu một tính năng mới giúp chỉ định đối số khi gọi một phương thức dễ dàng hơn. Biện pháp này được gọi là đối số tùy chọn và cho phép bạn xác định giá trị mặc định cho tham số phương thức. Giá trị này sẽ được sử dụng theo mặc định nếu đối số tương ứng không được chỉ định cho tham số khi gọi phương thức. Vì vậy, không cần thiết phải cung cấp đối số cho tham số đó. Các đối số tùy chọn giúp việc gọi các phương thức trong đó các đối số mặc định được áp dụng cho một số tham số trở nên dễ dàng hơn. Chúng cũng có thể được sử dụng như một dạng "phím tắt" của quá tải phương thức.

Động lực chính để thêm các đối số tùy chọn là nhu cầu đơn giản hóa việc tương tác với các đối tượng COM. Một số mô hình đối tượng của Microsoft (chẳng hạn như Microsoft Office) cung cấp chức năng thông qua các đối tượng COM, nhiều mô hình trong số đó đã được viết từ lâu và được thiết kế để lấy các tham số tùy chọn.

Một ví dụ về việc sử dụng các đối số tùy chọn được hiển thị bên dưới:

Sử dụng hệ thống; sử dụng System.Collections.Generic; sử dụng System.Linq; sử dụng System.Text; không gian tên ConsoleApplication1 ( class Program ( // Đối số b và c là tùy chọn khi gọi static int mySum(int a, int b = 5, int c = 10) ( return a + b + c; ) static void Main() ( int sum1 = mySum(3); int sum2 = mySum(3,12); Console.WriteLine("Sum1 = "+sum1);

Cần lưu ý rằng tất cả các đối số tùy chọn phải được chỉ định ở bên phải của các đối số được yêu cầu. Ngoài các phương thức, các đối số tùy chọn có thể được sử dụng trong hàm tạo, bộ chỉ mục và đại biểu.

Một lợi ích của các đối số tùy chọn là chúng giúp lập trình viên xử lý các lệnh gọi phương thức và hàm tạo phức tạp dễ dàng hơn. Rốt cuộc, thường cần phải chỉ định nhiều tham số trong một phương thức hơn mức thường được yêu cầu. Và trong những trường hợp như vậy, một số tham số này có thể được đặt thành tùy chọn thông qua việc sử dụng cẩn thận các đối số tùy chọn. Điều này có nghĩa là bạn chỉ cần chuyển những đối số quan trọng trong một trường hợp cụ thể chứ không phải tất cả các đối số cần thiết. Cách tiếp cận này cho phép bạn hợp lý hóa phương pháp và đơn giản hóa việc xử lý nó của người lập trình.

Đối số được đặt tên

Một tính năng khác đã được thêm vào C# khi phát hành .NET 4.0 là hỗ trợ cho cái gọi là đối số được đặt tên. Như bạn đã biết, khi truyền các đối số cho một phương thức, theo quy tắc, thứ tự của chúng phải trùng với thứ tự các tham số được xác định trong chính phương thức đó. Nói cách khác, giá trị đối số được gán cho tham số dựa trên vị trí của nó trong danh sách đối số.

Đối số được đặt tên được thiết kế để khắc phục hạn chế này. Đối số được đặt tên cho phép bạn chỉ định tên của tham số mà giá trị của nó được gán. Và trong trường hợp này, thứ tự của các đối số không còn quan trọng nữa. Do đó, các đối số được đặt tên có phần giống với các bộ khởi tạo đối tượng đã đề cập trước đó, mặc dù chúng khác với chúng về cú pháp. Để chỉ định một đối số theo tên, hãy sử dụng dạng cú pháp sau:

tham số_name: giá trị

Đây tên_tham số biểu thị tên của tham số mà giá trị được truyền vào. Tất nhiên, tham số_name phải là tên của tham số thực tế của phương thức được gọi.

Borland C++ hỗ trợ ba đối số cho hàm main(). Hai cái đầu tiên là argc và argv truyền thống. Đây là các đối số duy nhất cho hàm main() được xác định theo tiêu chuẩn ANSI C. Chúng cho phép truyền các đối số dòng lệnh vào chương trình. Đối số dòng lệnh là thông tin theo sau tên chương trình trên dòng lệnh của hệ điều hành. Ví dụ: khi một chương trình được biên dịch bằng trình biên dịch dòng Borland, nó thường được gõ bcc tên chương trình

Ở đâu tên chương trình là một chương trình cần được biên dịch. Tên chương trình được chuyển tới trình biên dịch dưới dạng đối số.

Tham số argc chứa số lượng đối số dòng lệnh và là một số nguyên. Nó luôn bằng ít nhất 1 vì tên chương trình đủ điều kiện làm đối số đầu tiên. Tham số argv là một con trỏ tới một mảng các con trỏ ký tự. Mỗi phần tử của mảng này trỏ tới một đối số dòng lệnh. Tất cả các đối số dòng lệnh đều là chuỗi. Tất cả các số được chương trình chuyển đổi sang định dạng nội bộ. Chương trình sau in "Xin chào" theo sau là tên người dùng khi gõ trực tiếp sau tên chương trình:

#bao gồm

{
nếu(argc!=2)
{
printf("Bạn quên gõ tên mình\n");
trả về 1;
}
printf("Xin chào %s", argv);
trả về 0;
}

Nếu bạn gọi tên chương trình này và tên người dùng là Sergey, thì để bắt đầu chương trình, bạn nên gõ:
tên là Serge.
Kết quả của chương trình sẽ xuất hiện như sau:
"Xin chào, Serge."

Các đối số dòng lệnh phải được phân tách bằng dấu cách hoặc tab. Dấu phẩy, dấu chấm phẩy và các ký tự tương tự không được coi là dấu phân cách. Ví dụ:

Bao gồm ba dòng, trong khi

Thảo mộc, Rick, Fred

Đây là một dòng - dấu phẩy không phải là dấu phân cách.

Nếu bạn cần truyền một chuỗi chứa dấu cách hoặc tab dưới dạng đối số duy nhất, bạn phải đặt chuỗi đó trong dấu ngoặc kép. Ví dụ: đây là một đối số:

"đây là một bài kiểm tra"

Điều quan trọng là phải khai báo argv chính xác. Phương pháp điển hình nhất là:

Dấu ngoặc đơn trống cho biết mảng không có độ dài cố định. Bạn có thể truy cập các phần tử riêng lẻ bằng cách lập chỉ mục argv. Ví dụ: argv trỏ đến dòng đầu tiên, dòng này luôn chứa tên chương trình. argv trỏ đến dòng tiếp theo, v.v.

Dưới đây là một ví dụ nhỏ về việc sử dụng đối số dòng lệnh. Nó đếm ngược từ giá trị được chỉ định trên dòng lệnh và phát ra tín hiệu khi về 0. Lưu ý rằng đối số đầu tiên chứa một số được chuyển đổi thành số nguyên bằng hàm atoi() tiêu chuẩn. Nếu chuỗi "hiển thị" xuất hiện dưới dạng đối số thứ hai thì chính bộ đếm sẽ được hiển thị trên màn hình.

/* chương trình đếm */

#bao gồm
#bao gồm
#bao gồm
int main(int argc, char *argv)
{
int phân phối, đếm;
nếu(argc<2)
{
printf("Bạn phải nhập độ dài của số đếm\n");
printf("trên dòng lệnh. Hãy thử lại.\n");
trả về 1;
}
if (argc==3 && !strcmp(argv,"display")) disp = 1;
khác disp = 0;
for(count=atoi(argv); đếm; -count)
if (disp) printf("%d ", count);
printf("%c", "\a"); /* trên hầu hết các máy tính, đây là một cuộc gọi */
trả về 0;
}

Xin lưu ý rằng nếu không có đối số nào được chỉ định, thông báo lỗi sẽ xuất hiện. Đây là trường hợp điển hình nhất đối với các chương trình sử dụng đối số dòng lệnh để đưa ra hướng dẫn nếu cố gắng chạy chương trình mà không có thông tin chính xác.

Để truy cập các ký tự dòng lệnh riêng lẻ, hãy thêm chỉ mục thứ hai vào argv. Ví dụ: chương trình sau in ra tất cả các đối số mà nó được gọi, mỗi lần một ký tự:

#bao gồm
int main(int argc, char *argv)
{
int t, tôi;
vì(t=0; t {
tôi = 0;
while(argv[t][i])
{
printf("%c", argv[t][i]);
}
printf(" ");
}
trả về 0;
}

Chúng ta phải nhớ rằng chỉ mục đầu tiên là để truy cập một chuỗi và chỉ mục thứ hai là để truy cập một ký tự trong chuỗi.

Thông thường argc và argv được sử dụng để nhận các lệnh nguồn. Về mặt lý thuyết có thể có tới 32767 đối số, nhưng hầu hết các hệ điều hành thậm chí không cho phép bạn tiến gần đến con số đó. Thông thường, các đối số này được sử dụng để chỉ định tên tệp hoặc các tùy chọn. Việc sử dụng các đối số dòng lệnh mang lại cho chương trình một giao diện chuyên nghiệp và cho phép chương trình được sử dụng trong các tệp bó.

Nếu bạn bao gồm tệp WILDARGS.OBJ được cung cấp cùng với Borland C++, bạn có thể sử dụng các mẫu trong các đối số loại *.EXE. (Borland C++ tự động xử lý các ký tự đại diện và tăng dần argc tương ứng.) Ví dụ: nếu bạn kết nối WILDARGS.OBJ với chương trình sau, nó sẽ cho bạn biết có bao nhiêu tệp khớp với tên tệp được chỉ định trên dòng lệnh:

/* Liên kết chương trình này với WILDARGS.OBJ */

#bao gồm
int main(int argc, char *argv)
{
đăng ký int i;
printf("Tệp%d khớp với tên được chỉ định\n", argc-1);
printf("Họ là: ");
vì(i=1; tôi printf("%s", argv[i]);
trả về 0;
}

Nếu chúng ta gọi chương trình này là WA, sau đó chạy nó như sau, chúng ta sẽ nhận được số lượng tệp có phần mở rộng EXE và danh sách tên của các tệp này:

Ngoài argc và argv, Borland C++ còn cung cấp đối số dòng lệnh thứ ba -env. Tham số env cho phép chương trình truy cập thông tin về môi trường hệ điều hành. Tham số env phải theo sau argc và argv và được khai báo như sau:

Như bạn có thể thấy, env được khai báo giống như argv. Giống như argv, nó là một con trỏ tới một mảng các chuỗi. Mỗi dòng là một chuỗi môi trường được xác định bởi hệ điều hành. Tham số env không có tham số argc tương đương cho biết có bao nhiêu hàng môi trường. Thay vào đó, dòng cuối cùng của môi trường là null. Chương trình sau in tất cả các chuỗi môi trường hiện được xác định trong hệ điều hành:

/*chương trình này hiển thị tất cả các dòng môi trường */

#bao gồm
int main(int argc, char *argv, char *env)
{
int t;
for(t=0; env[t]/ t++)
printf("%s\n", env[t]);
trả về 0;
}

Xin lưu ý rằng mặc dù chương trình không sử dụng argc và argv nhưng chúng phải có trong danh sách tham số. C không biết tên tham số. Thay vào đó, việc sử dụng chúng được xác định theo thứ tự khai báo các tham số. Trong thực tế, bạn có thể gọi tham số này bất cứ điều gì bạn thích. Vì argc, argv và env là các tên truyền thống nên tốt nhất bạn nên tiếp tục sử dụng chúng để bất kỳ ai đọc chương trình đều có thể hiểu ngay rằng đây là các đối số của hàm main().

Một nhiệm vụ điển hình của các chương trình là tra cứu một giá trị được xác định trong chuỗi môi trường. Ví dụ: nội dung của dòng PATH cho phép các chương trình sử dụng đường dẫn tìm kiếm. Chương trình sau đây trình bày cách tìm các chuỗi khai báo đường dẫn tìm kiếm tiêu chuẩn. Nó sử dụng hàm thư viện chuẩn strstr(), có nguyên mẫu sau:

Char *strstr(const char *str1, const char *str2);

Hàm strstr() tìm kiếm chuỗi được trỏ bởi str1 trong chuỗi được trỏ bởi str2. Nếu tìm thấy một chuỗi như vậy, một con trỏ tới vị trí đầu tiên sẽ được trả về. Nếu không tìm thấy kết quả phù hợp, hàm trả về NULL.

/* chương trình tìm kiếm một dòng chứa PATH trong các chuỗi môi trường */

#bao gồm
#bao gồm
int chính (int argc, char *argv, char *env)
{
int t;
for(t=0; env[t]; t++)
{
if(strstr(env[t], "PATH"))
printf("%s\n", env[t]);
}
trả về 0;
}

thẻ: Tùy chọn dòng lệnh

Tùy chọn dòng lệnh

C là một ngôn ngữ được biên dịch. Sau khi lắp ráp, chương trình là một tệp thực thi (chúng tôi không xem xét việc tạo thư viện động, trình điều khiển, v.v.). Các chương trình của chúng tôi rất đơn giản và không chứa thư viện Runtime, vì vậy chúng có thể được chuyển sang một máy tính có cùng hệ điều hành (và kiến ​​trúc tương tự) và chạy ở đó.

Chương trình có thể chấp nhận các tham số trong quá trình khởi động. Chúng là các đối số cho hàm main. Cái nhìn tổng quát về chức năng chính như sau

Void main(int argc, char **argv) ( ... )

Đối số đầu tiên của argc là số lượng tham số được truyền cho hàm. Đối số thứ hai là một mảng các chuỗi – chính các tham số. Vì các tham số của hàm có thể là bất kỳ thứ gì nên chúng được truyền dưới dạng chuỗi và bản thân chương trình phải phân tích cú pháp và chuyển đổi chúng thành loại mong muốn.

Đối số đầu tiên (argv) luôn là tên chương trình. Trong trường hợp này, tên được hiển thị tùy thuộc vào nơi chương trình được khởi chạy.

#bao gồm #bao gồm void main(int argc, char **argv) ( printf("%s", argv); )

Bây giờ chúng ta hãy học cách làm việc một chút với dòng lệnh. Điều này sẽ cần thiết để truyền các đối số cho chương trình của chúng ta. Tổ hợp phím Win+R sẽ hiển thị cửa sổ Run. Gõ cmd vào đó và bạn sẽ mở dòng lệnh. Bạn cũng có thể tìm thấy cmd.exe bằng cách tìm kiếm trong menu Bắt đầu. Trong các hệ điều hành giống Unix, bạn có thể gọi chương trình đầu cuối.

Chúng ta sẽ không học quá nhiều lệnh. Chỉ những thứ cần thiết cho công việc.

Lệnh cd, tiêu chuẩn cho tất cả các hệ điều hành, điều hướng đến thư mục mong muốn. Có hai tên dành riêng - . (dấu chấm) và.. (hai dấu chấm). Dấu chấm là tên của thư mục hiện tại.

Không đi đâu cả

Truy cập thư mục mẹ

Chuyển đến thư mục mẹ

Để đi đến địa chỉ mong muốn, hãy viết địa chỉ CD. Ví dụ: bạn cần vào windows vào thư mục C:\Windows\System32

CD C:\Windows\System32

Trong Linux, nếu bạn cần vào thư mục /var/mysql

Cd /var/mysql

Nếu đường dẫn chứa khoảng trắng, nó được viết bằng dấu ngoặc kép

Cd "D:\Tài liệu và Cài đặt\Prolog"

Thiết bị đầu cuối có các tính năng hữu ích sau: nếu bạn nhấn mũi tên lên, lệnh được thực hiện trước đó sẽ xuất hiện. Nếu bạn nhấn tab, thiết bị đầu cuối sẽ cố gắng hoàn thành dòng theo lệnh đã biết hoặc hoàn thành đường dẫn, đi qua tất cả các thư mục và tệp trong thư mục hiện tại.
Gõ cd C:\
nhấn tab và xem điều gì sẽ xảy ra.

Một lệnh quan trọng khác, dir trên Windows và ls trên Linux, hiển thị nội dung của thư mục hiện tại (thư mục bạn hiện đang ở) trên bảng điều khiển.

Chương trình của bạn đã trả lại tên đầy đủ của nó. Chuyển đến thư mục chứa chương trình của bạn và xem nội dung của nó


Bây giờ chúng ta đã điều hướng đến thư mục của mình, chúng ta có thể chạy chương trình của mình. Để làm điều này, hãy gõ tên của cô ấy.


Lưu ý rằng tên đã thay đổi. Vì chương trình được gọi từ thư mục riêng nên tên tương đối sẽ được hiển thị. Bây giờ hãy thay đổi chương trình và in tất cả các đối số. những gì đã được trao cho cô ấy.

#bao gồm #bao gồm void main(int argc, char **argv) ( int i; for (i = 0; i< argc; i++) { printf("%s\n", argv[i]); } }

Lắp ráp dự án. Trước khi lắp ráp, hãy chắc chắn rằng chương trình đã được đóng. Bây giờ hãy gọi chương trình, truyền cho nó các đối số khác nhau. Để thực hiện việc này, hãy viết tên chương trình và các đối số cách nhau bằng dấu cách


Bây giờ chúng ta hãy viết một chương trình nhận vào hai đối số là số và in ra tổng của chúng

#bao gồm #bao gồm #bao gồm void main(int argc, char **argv) ( int a, b; if (argc != 3) ( printf("Lỗi: tìm thấy %d đối số. Cần chính xác 2", argc-1); exit(1); ) a = atoi(argv); b = atoi(argv); printf("%d", a + b);

Hãy thu thập và gọi


Đây là cách hầu hết các chương trình hoạt động. Bằng cách nhấp vào một phím tắt, bạn gọi chương trình mà nó đề cập đến. Hầu hết các chương trình cũng chấp nhận các đối số khác nhau. Ví dụ: bạn có thể gọi trình duyệt firefox từ dòng lệnh và truyền đối số
firefox.exe "www.mozilla.org" "trang web" và nó sẽ ngay lập tức mở các trang web tại các địa chỉ được chỉ định trong hai tab.

Nhiều lệnh tiêu chuẩn cũng có tham số. Trong Windows, thông thường chúng bắt đầu bằng dấu gạch chéo lên, trong Unix bằng một hoặc hai dấu trừ. Ví dụ

Chỉ hiển thị các thư mục, nhưng trong thiết bị đầu cuối linux

Ls -l liệt kê tất cả các file và thư mục có thuộc tính

Để xem các lệnh Windows bổ sung, hãy nhập trợ giúp tại dòng lệnh hoặc xem hướng dẫn sử dụng (rất dễ tìm thấy trên Internet). Đối với Linux, có nhiều lệnh hơn và các tùy chọn của chúng, và một số trong số chúng là ngôn ngữ lập trình độc lập, vì vậy, bạn nên tìm hiểu ít nhất về tập hợp tối thiểu và các tùy chọn của chúng.

Khi tự động tạo một ứng dụng bảng điều khiển bằng ngôn ngữ lập trình C++, một chức năng chính rất giống với chức năng này sẽ được tạo tự động:

int main(int argc, char * argv)
{…}

Tiêu đề hàm chứa chữ ký của hàm chính main() với các đối số argс và argv.
Nếu bạn chạy một chương trình thông qua dòng lệnh thì có thể chuyển một số thông tin sang chương trình này. Có các đối số dòng lệnh argc và argv cho việc này.
Tham số argc có kiểu int và chứa số lượng tham số được truyền cho hàm chính. Hơn nữa, argc luôn có ít nhất 1, ngay cả khi không có thông tin nào được truyền đến hàm chính, vì tham số đầu tiên là tên ứng dụng.
Tham số argv là một mảng các con trỏ tới chuỗi. Chỉ có dữ liệu chuỗi mới có thể được truyền qua dòng lệnh.

Khi bạn chạy một chương trình thông qua dòng lệnh Windows, bạn có thể chuyển một số thông tin tới chương trình đó. Trong trường hợp này, dòng lệnh sẽ trông như sau:
Ổ đĩa:\path\name.exe đối số1 đối số2 ...

Các đối số dòng lệnh được phân tách bằng một hoặc nhiều dấu cách.

Đối số argv chứa tên ứng dụng đầy đủ:

#bao gồm
sử dụng không gian tên std;

cout<< argv << endl;

Trả về 0;
}

Kết quả thực hiện

Ví dụ: Tính tích của hai số nguyên
Chương trình sử dụng hàm để chuyển đổi một chuỗi thành số nguyên StrToInt() từ đây.

#bao gồm
sử dụng không gian tên std;
int StrToInt(char *s) (…)
int main(int argc, char * argv) (

Int a = 0, b=0;

Nếu (argc > 1)

a = StrToInt(argv);

Nếu (argc > 2)

b = StrToInt(argv);

cout<< a <<«*» << b << «= « << a*b << endl;

Trả về 0;
}

Chương trình được ra mắt như sau:

Kết quả thực hiện

Gỡ lỗi chương trình với đối số dòng lệnh

Để truyền đối số dòng lệnh khi gỡ lỗi chương trình, bạn cần truy cập menu Của cải dự án.


Trên tab Thuộc tính cấu hình -> Gỡ lỗi chọn Đối số lệnh và thiết lập giá trị của chúng.

Khi chạy chương trình ở chế độ gỡ lỗi, các đối số đã nhập sẽ được chương trình coi là đối số dòng lệnh.


Đôi khi khi bắt đầu một chương trình, việc chuyển một số thông tin tới nó là rất hữu ích. Thông thường, thông tin này được chuyển đến main() thông qua các đối số dòng lệnh. Đối số dòng lệnh là thông tin được nhập vào dòng lệnh của hệ điều hành theo sau tên chương trình. Ví dụ: để bắt đầu biên dịch chương trình, bạn cần nhập nội dung như sau vào dòng lệnh sau dấu nhắc:

Cc tên chương trình

tên chương trình là một đối số dòng lệnh; nó chỉ định tên của chương trình bạn sắp biên dịch.

Để chấp nhận các đối số dòng lệnh, hai đối số tích hợp đặc biệt được sử dụng: argc và argv. Tham số argc chứa số lượng đối số trên dòng lệnh và là một số nguyên, luôn ít nhất bằng 1, vì đối số đầu tiên là tên của chương trình. Và tham số argv là một con trỏ tới một mảng các con trỏ tới chuỗi. Trong mảng này, mỗi phần tử trỏ đến một đối số dòng lệnh. Tất cả các đối số dòng lệnh đều là chuỗi, vì vậy việc chuyển đổi bất kỳ số nào sang định dạng nhị phân mong muốn phải được cung cấp trong chương trình khi nó được phát triển.

Đây là một ví dụ đơn giản về việc sử dụng đối số dòng lệnh. Từ Xin chào và tên của bạn được hiển thị trên màn hình, phải được chỉ định làm đối số dòng lệnh.

#bao gồm #bao gồm int main(int argc, char *argv) ( if(argc!=2) ( printf("Bạn quên nhập tên mình.\n"); exit(1); ) printf("Xin chào %s", argv) ; trả về 0;

Nếu bạn gọi tên (tên) chương trình này và tên của bạn là Tom thì để chạy chương trình bạn nên nhập tên Tom vào dòng lệnh. Kết quả khi thực hiện chương trình, trên màn hình sẽ xuất hiện thông báo Hello, Tom.

Trong nhiều môi trường, tất cả các đối số dòng lệnh phải được phân tách bằng dấu cách hoặc tab. Dấu phẩy, dấu chấm phẩy và các ký tự tương tự không được coi là dấu phân cách. Ví dụ,

Chạy Spot, chạy

bao gồm ba chuỗi ký tự, trong khi

Eric, Rick, Fred

đại diện cho một chuỗi ký tự đơn - dấu phẩy, theo quy luật, không được coi là dấu phân cách.

Nếu một chuỗi chứa dấu cách, bạn có thể đặt chuỗi đó trong dấu ngoặc kép trong một số môi trường để ngăn chuỗi đó tạo ra nhiều đối số. Kết quả là toàn bộ chuỗi sẽ được coi là một đối số. Để tìm hiểu thêm về cách hệ điều hành của bạn đặt tham số dòng lệnh, hãy xem lại tài liệu về hệ điều hành của bạn.

Điều rất quan trọng là khai báo argv một cách chính xác. Đây là cách nó được thực hiện thường xuyên nhất:

Char *argv;

Dấu ngoặc vuông trống cho biết mảng có độ dài không xác định. Bây giờ có thể truy cập các đối số riêng lẻ bằng cách lập chỉ mục cho mảng argv. Ví dụ: argv trỏ đến chuỗi ký tự đầu tiên, luôn là tên chương trình; argv trỏ đến đối số đầu tiên, v.v.

Một ví dụ nhỏ khác về việc sử dụng đối số dòng lệnh là chương trình đếm ngược sau đây. Chương trình này đếm ngược, bắt đầu từ một giá trị nào đó (được chỉ định trên dòng lệnh) và phát ra tiếng bíp khi nó đạt đến 0. Lưu ý rằng đối số đầu tiên, chứa giá trị bắt đầu, được chuyển đổi thành giá trị số nguyên bằng cách sử dụng hàm atoi tiêu chuẩn (). Nếu đối số dòng lệnh thứ hai (và nếu chúng ta coi tên chương trình là đối số thì đối số thứ ba) là dòng “hiển thị” (hiển thị), thì kết quả đếm (theo thứ tự ngược lại) sẽ được hiển thị trên màn hình.

/* Chương trình đếm theo thứ tự ngược lại. */ #bao gồm #bao gồm #bao gồm #bao gồm int main(int argc, char *argv) ( int disp, count; if(argc<2) { printf("В командной строке необходимо ввести число, с которого\n"); printf("начинается отсчет. Попробуйте снова.\n"); exit(1); } if(argc==3 && !strcmp(argv, "display")) disp = 1; else disp = 0; for(count=atoi(argv); count; --count) if(disp) printf("%d\n", count); putchar("\a"); /* здесь подается звуковой сигнал */ printf("Счет закончен"); return 0; }

Xin lưu ý rằng nếu đối số dòng lệnh không được chỉ định, thông báo lỗi sẽ được hiển thị. Các chương trình nhận đối số dòng lệnh thường thực hiện như sau: Khi người dùng chạy các chương trình này mà không nhập thông tin được yêu cầu, chúng sẽ hiển thị hướng dẫn về cách chỉ định chính xác các đối số.

Để truy cập một ký tự riêng lẻ của một trong các đối số dòng lệnh, hãy nhập chỉ mục thứ hai vào argv. Ví dụ: chương trình sau sẽ in, từng ký tự, tất cả các đối số mà nó được gọi:

#bao gồm int main(int argc, char *argv) ( int t, i; for(t=0; t

Hãy nhớ rằng, chỉ mục đầu tiên của argv cung cấp quyền truy cập vào chuỗi và chỉ mục thứ hai cung cấp quyền truy cập vào các ký tự riêng lẻ của nó.

Thông thường, argc và argv được sử dụng để cung cấp cho chương trình những lệnh ban đầu mà nó sẽ cần khi khởi động. Ví dụ: đối số dòng lệnh thường chỉ định thông tin như tên tệp, tùy chọn hoặc hành vi thay thế. Việc sử dụng các đối số dòng lệnh mang lại cho chương trình của bạn một "diện mạo chuyên nghiệp" và giúp sử dụng dễ dàng hơn trong các tệp bó.

Tên argc và argv là tên truyền thống nhưng không bắt buộc. Bạn có thể gọi hai tham số này trong hàm main() bất cứ điều gì bạn muốn. Ngoài ra, một số trình biên dịch có thể hỗ trợ các đối số bổ sung cho main(), vì vậy hãy nhớ kiểm tra tài liệu của trình biên dịch.

Khi một chương trình không yêu cầu tham số dòng lệnh, cách phổ biến nhất là khai báo rõ ràng hàm main() là không có tham số. Trong trường hợp này, từ khóa void được sử dụng trong danh sách tham số của hàm này.