cuốn sách gpt4 ai đã làm

Làm cách nào để phát hiện lỗi chính tả bằng Boost.program_options?

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 18:36:16 30 4
mua khóa gpt4 Nike

Tôi sử dụng thư viện boost.program_options. Hãy xem xét trường hợp đơn giản hóa này.

po::options_description desc("Cách sử dụng");
desc.add_options()
("gỡ cài đặt,u", "gỡ cài đặt chương trình")
("custom,c", po::wvalue(), "chỉ định hành động tùy chỉnh");

po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);

Tôi muốn tạo lỗi trên dòng lệnh như thế này:

testprog.exe -u c- action1

Lưu ý rằng người dùng đã gõ nhầm "c-" thay vì "-c". Nhưng trình phân tích cú pháp hiểu đây là một tùy chọn -u. Tôi nên xử lý tình huống này như thế nào?

câu trả lời hay nhất

Tôi muốn tạo ra lỗi trên dòng lệnh như vậy:

testprog.exe -u c- action1

Lưu ý, người dùng đã mắc lỗi đánh máy "c-" thay vì "-c". Nhưng trình phân tích cú pháp hiểu đây là một tùy chọn -u. Làm cách nào để xử lý các trường hợp như vậy?

hướng dẫn chương trình_options Thư viện không chấp nhận bất kỳ đối số vị trí nào và bạn sẽ có được hành vi mong muốn

Mã hóa & biên dịch:

macmini:stackoverflow samm$ cat po.cc
#include
#include

#include

int
chính(int argc, char* argv[])
{
không gian tên po = boost::program_options;
po::options_description desc("Cách sử dụng");
desc.add_options()
("gỡ cài đặt,u", "gỡ cài đặt chương trình")
("custom,c", po::wvalue(), "chỉ định hành động tùy chỉnh")
;

po::variables_map vm;
po::command_line_parser cmd_line( argc, argv );
cmd_line.options( desc );
cmd_line.positional( po::positional_options_description() );

thử {
po::store( cmd_line.run(), vm );

po::notify(vm);
} bắt ( const std::Exception& e ) {
std::cerr << e.what() << std::endl;
return -1;
}

return 0;
}
macmini:stackoverflow samm$ g++ po.cc -I /opt/local/include -L/opt/local/lib -lboost_program_options -Wl,-rpath,/opt/local/lib

chạy:

macmini:stackoverflow samm$ ./a.out -u c- action1
quá nhiều lựa chọn vị trí
macmini: stackoverflow samm$ ./a.out -u -c action1
macmini:stackoverflow samm$

Làm cách nào để phát hiện lỗi chính tả bằng Boost.program_options? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/7888211/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress