Khi cố gắng để in các đối số dòng lệnh đầu tiên:Làm thế nào để tránh con trỏ số học khi sử dụng char ** argv
std::cout << argv[0] << std::endl;
kêu vang-gọn gàng cung cấp cho các cảnh báo:
cảnh báo: 'không sử dụng con trỏ số học' từ [cppcoreguidelines-pro-giới hạn-con trỏ số học]
có một cách khác để sử dụng các giá trị của argv
mà không sử dụng số học con trỏ? Không truy cập một char**
bởi bất kỳ phương pháp hợp lý nào sẽ phải sử dụng số học con trỏ?
Tôi đánh giá cao có một số chức năng chuyên biệt để xử lý các đối số dòng lệnh, nhưng chúng dường như quá nặng để chỉ in một đối số.
Tôi đang viết bằng c++
, sử dụng trình biên dịch clang
và xây dựng với cmake
.
Nếu bạn chỉ cần 'argv [0]', bạn có thể sử dụng '* argv'. Nhưng ngoài ra, không. –
Thử sử dụng '& argv [0]'. Tôi tin rằng 'cout' muốn một con trỏ đến một ký tự đơn. –
Liệu nó có còn phàn nàn nếu bạn làm 'argv' một mảng chứ không phải là một con trỏ? 'char * argv []'? – spectras