Так что я запутался, как именно аргументы командной строки работает в C ... поэтому у меня есть эти аргументы командной строки, которые я даю:C - Аргументы командной строки как строки?
./myclient1 MyPCName 12 7894
Так что я хочу, чтобы прочитать argv[2] (12)
как строку .. но я смущен точно, как значения хранятся в командной строке. Я посмотрел на оба this SO сообщение, this это link, но я все еще смущен ... что такое тип данных argv[2]
? Это целое число? Или все аргументы командной строки изначально строки? Так argv[2]
на самом деле:
argv:
[0]
[1]
[2] --> 1 | 2 | \0
Я просто действительно путают .... В настоящее время, я просто преобразуется в целое число с помощью atoi()
, а затем преобразуется обратно в строку, используя snprintf
, но это не работает правильно, и я Мне интересно, нужно ли мне вообще это делать.
Я новичок в C, поэтому любая помощь будет принята с благодарностью, спасибо!
[править]
это то, что я делал раньше:
int main(int argc, char *argv[])
{
clientID = atoi(argv[2]);
snprintf(clibuff,300,"%d",clientID); //now clibuff has the value of
//clientID in a string.
}
Пожалуйста, разместите код, который вы пробовали. – QuestionC
Все аргументы командной строки входят в виде строк. – QuestionC