Search…

Cơ Bản Về Đối Số Dòng Lệnh

23/09/20203 min read
Giới thiệu đối số dòng lệnh và làm quen với một số thao tác cơ bản trên Command Line.

Đối số dòng lệnh (tham số dòng lệnh) là những giá trị khá quan trọng cho chương trình của bạn, đặc biệt khi muốn kiểm soát chương trình của bạn từ bên ngoài thay vì mã hóa những giá trị bên trong mã.

Đối số dòng lệnh là gì?

Đối số dòng lệnh là các đối số chuỗi tùy ý mà người dùng có thể cung cấp cho một chương trình khi thực thi. Các đối số được truyền thông qua hệ điều hành của chương trình và chương trình có thể sử dụng nó như input.

Để sử dụng các đối số dòng lệnh trong chương trình, phải khai báo đầy đủ trong hàm main bao gồm hai đối số: 

  • Số đối số dòng lệnh
  • Danh sách các đối số dòng lệnh.

Cú pháp

int main (int <số đối số dòng lệnh>, char <Danh sách các đối số dòng lệnh>)

Cách sử dụng đối số dòng lệnh

Sau đây sẽ là 2 ví dụ minh họa để có thể hiểu rõ hơn về đối số dòng lệnh.

Ví dụ 1

Khởi tạo một chương trình tên file Project là DSLD có nội dung như sau:

int main( int argc, char *argv[])
{
	for( i = 0; i < argc; i ++)
	{
		cout << argv[i] << "";
	}
	
	return 0;
}
  • Bước 1: debug chương trình.
  • Bước 2: về màn hình desktop ấn tổ hợp phím Windows + R để mở của sổ Run.
  • Bước 3: gõ cmd chọn OK để mở cửa sổ Command Line.
  • Bước 4: đưa đường dẫn chứa file DSDL.exe và nhập đối số, mỗi đối số cách nhau bằng một khoảng trắng . Ở đây, nhập DSDL.exe để Command line chạy file này và nhập các đối số Hello world. Ngoài ra, cũng có thể nhập DSDL vì command line sẽ hiểu rằng muốn chạy file DSDL.exe.
Đối số dòng lệnh

Kết quả chương trình sẽ in ra: “DSDL.exe Hello World”.

Lúc này số đối số sẽ là argc bằng 3, tương ứng với 2 đối số  vừa nhập vào và tên của file .exe trong thư mục debug. Tên file DSDL.exe chính là argv[0]argv[1] =”Hello”, argv[2] = “World”.

Đối số dòng lệnh argv

Ví dụ 2

Khởi tạo chương trình như sau, trong đó change(char* Str) là hàm chuẩn hóa chuỗi thành số kiểu int. Ở ví dụ này sẽ cộng 2 đối số lại với nhau:

int cStringToInt(char* str) 
{
	int temp = 0;
	int sign = 1;
	if (*str == '-')
	{
		sign = -1;
		str++;
	}
	while (*str>='0' && *str <='9') 
	{
		temp *= 10;
		temp += (int)(*str - '0');
		str++;
	}
	return temp * sign;
}

int main(int argc, char *argv[])
{
	int a = cStringToInt(argv[1]);
	int b = cStringToInt(argv[2]);
	cout << "a + b = " << a + b;
	return 0;
}

Thao tác tương tự như ví dụ 1. Sau đó sẽ truyền vào 2 giá trị của argv[1] = 3argv[2] = 5.

Đối số dòng lệnh

Kết quả chương trình:

Đối số dòng lệnh
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024