Форум программистов, компьютерный форум CyberForum.ru

Передача числа через аргумент командной строки - C++

Восстановить пароль Регистрация
 
WetSock
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 4
10.07.2015, 12:06     Передача числа через аргумент командной строки #1
Здравствуйте.

Мне необходимо передать число в программу, а затем работать с этим числом.

Проблема состоит в том, что при считывании аргумента считывается лишь первый символ. То есть, я программа корректно работает с однозначными числами, но если передать в качестве аргумента, допустим, "39", то программа воспринимает его как "3".

C++
1
2
3
4
5
6
7
int _tmain(int argc, char* argv[])
{
  int X;
  sscanf_s(argv[1].c_str(), "%d", &X);
  cout << " X = " << X+11 << endl;
  return 0;
}
Пробовал разные типы данных для argv[] и различные операции перевода его в строку, а затем в число. Пока безуспешно.

Подскажите в чем моя ошибка.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
10.07.2015, 12:25     Передача числа через аргумент командной строки #2
prog.exe 57 26 3
WetSock
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 4
10.07.2015, 12:28  [ТС]     Передача числа через аргумент командной строки #3
Попробовал скомпилировать код с msdn, данный в качестве примера.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// command_line_arguments.cpp
// compile with: /EHsc
#include <iostream>
 
using namespace std;
int main( int argc,      // Number of strings in array argv
          char *argv[],   // Array of command-line argument strings
          char *envp[] )  // Array of environment variable strings
{
    int count;
 
    // Display each command-line argument.
    cout << "\nCommand-line arguments:\n";
    for( count = 0; count < argc; count++ )
         cout << "  argv[" << count << "]   "
                << argv[count] << "\n";
}
Результат тот же: выводится лишь по одному символу из каждого аргумента.
Работа ведется в VS13, но вряд ли есть проблемы связанные со средой.

Добавлено через 2 минуты
Цитата Сообщение от egor2116 Посмотреть сообщение
prog.exe 57 26 3
Передаю 33, 5 и 111.txt. Выводится 3, 5 и 1.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
10.07.2015, 12:30     Передача числа через аргумент командной строки #4
Какой charset установлен в проекте по умолчанию - UNICODE или Not set?
WetSock
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 4
10.07.2015, 12:34  [ТС]     Передача числа через аргумент командной строки #5
К сожалению, не понимаю о чем Вы. Как узнать charset?
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
10.07.2015, 12:45     Передача числа через аргумент командной строки #6
C++
1
2
3
4
5
6
7
int main(int argc, char* argv[])
{
  int X;
  sscanf(argv[1], "%d", &X);
  cout << " X = " << X + 11 << endl;
  return 0;
}
Миниатюры
Передача числа через аргумент командной строки  
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
10.07.2015, 12:51     Передача числа через аргумент командной строки #7
http://stackoverflow.com/questions/8...-and-main-in-c
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2015, 13:04     Передача числа через аргумент командной строки
Еще ссылки по теме:

C++ Вывод текста описания команд в консоль командной строки при запуске программы через командную строку
Название файла, как аргумент в командной строке C++
C++ Путь к файлу вводится в командной строке как аргумент функции main()

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sashatref
75 / 75 / 27
Регистрация: 21.05.2015
Сообщений: 257
Завершенные тесты: 1
10.07.2015, 13:04     Передача числа через аргумент командной строки #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <conio.h>
#include <iostream>
 
int main(int argc, char* argv[])
{
    int x = atoi(argv[1]);
 
    std::cout << "X:" << x;
    _getch();
    
    return 0;
}
Yandex
Объявления
10.07.2015, 13:04     Передача числа через аргумент командной строки
Ответ Создать тему
Опции темы

Текущее время: 02:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru