this post was submitted on 25 Jul 2023
1 points (100.0% liked)

C++

1783 readers
1 users here now

The center for all discussion and news regarding C++.

Rules

founded 1 year ago
MODERATORS
 

im new in c++ and i am creating a version of cat for practicing what i have learned so far. What im doing for managing the command line arguments is converting them to library strings and then using them, but now i have the doubt if it is the correct / most optimal way to do it

all 7 comments
sorted by: hot top controversial new old
[–] leviosa 4 points 1 year ago* (last edited 1 year ago)

You can quickly get the args into a vector like this:

auto args = std::vector<std::string_view>(argv, argv + argc);

Checking equality etc directly instead of using strcmp stuff is better. There are libraries available for handling command line args too.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (2 children)

Use std::string_view to sort of get the safety of std::string without copying the contents (just in general make sure the original c string won't get freed or overwritten, which won't happen to argv in your case).

Or just std::string and yolo, the overhead of copying the contents is negligible in your use case.

[–] [email protected] 1 points 1 year ago