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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
WetSock
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 4
#1

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

10.07.2015, 12:06. Просмотров 578. Ответов 7
Метки нет (Все метки)

Здравствуйте.

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

Проблема состоит в том, что при считывании аргумента считывается лишь первый символ. То есть, я программа корректно работает с однозначными числами, но если передать в качестве аргумента, допустим, "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[] и различные операции перевода его в строку, а затем в число. Пока безуспешно.

Подскажите в чем моя ошибка.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2015, 12:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача числа через аргумент командной строки (C++):

Передать путь в аргумент командной строки - C++
Задавал в программе путь к файлу через fs::path directory_path(D:\\f) нужно передать путь к файлам через аргументы командной строки...

Передача аргументов командной строки - C++
Здравствуйте. Подскажите пожалуйста, зачем в этом коде &quot;return 1;&quot;? #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; ...

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

Передача параметров командной строки в main(): что происходит в коде? - C++
Здравствуйте. Объясните пожалуйста, что идет в main ? ... printf(&quot;IMAGE NAME: %s\n&quot;, filename); ... void A(int h) { //это...

Название файла, как аргумент в командной строке - C++
Ребят, как задавать название файла как аргумент командной строки? допустим у меня есть файл qwer.cpp и я на данный момент могу его...

Путь к файлу вводится в командной строке как аргумент функции main() - C++
. Путь к файлу вводится в командной строке как аргумент функции main(). Как это написать?

7
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,127
10.07.2015, 12:25 #2
prog.exe 57 26 3
0
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.
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,389
10.07.2015, 12:30 #4
Какой charset установлен в проекте по умолчанию - UNICODE или Not set?
0
WetSock
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 4
10.07.2015, 12:34  [ТС] #5
К сожалению, не понимаю о чем Вы. Как узнать charset?
0
lss
921 / 850 / 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;
}
0
Миниатюры
Передача числа через аргумент командной строки  
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
10.07.2015, 12:51 #7
http://stackoverflow.com/questions/8...-and-main-in-c
0
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;
}
1
10.07.2015, 13:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2015, 13:04
Привет! Вот еще темы с ответами:

Вывод текста описания команд в консоль командной строки при запуске программы через командную строку - C++
Всем привет! Есть такая программка которая запускается через командную строку с параметром, например : C:\папка\spectr.exe /А ...

Передача функции в аргумент - C++
Есть три функции: void MainMenu(); void MainMenu_MilkMenu(); bool ErrorMenu(void (*pf)()); Все прототипы находятся в...

Через аргументы командной строки скопировать файл в файл - C++
Объясните, пожалуйста, как через аргументы командной строки скопировать файл в файл?

Передача потока (текущ.позиции курсора в файле) как аргумент функции - C++
Всем привет! Столкнулся с такой проблемой, Конструкция довольно тяжелая для меня. Мне нужно чтобы я открывал файл для чтения, затем...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru