С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Александер1
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 68
#1

Командная строка - C++

10.08.2012, 15:41. Просмотров 1218. Ответов 10
Метки нет (Все метки)

как сделать вывод сообщений на русском языке(англ.) в командной строке? Почему ошибка в объявлении вещественного типа и как запустить прогу с ними? может быть библиотеки нет?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "stdafx.h"
#include "stdlib.h"
#include <conio.h>
#include <iostream>
#include <string>
#include <iomanip>
#include <sstream>
#include <stdexcept>
 
using namespace std;
 
float StringToInt(const char * str, bool & err)
{
    char * pLastChar = NULL;
    float param = strtol(str, &pLastChar, 10);
        err = ((*str == '\0') || (*pLastChar != '\0'));
    return param;
}
 
float main(float argc, char* argv[])
{
     if (argc <= 1)
     {
              cout << "Program calculates sum of its command line arguments.\n";
              return 0;
     }
     float sum = 0;
     for (float i = 1; i < argc; ++i)
     {
              bool err;
              float param = StringToInt(argv[i], err);
              if (err)
              {
                   cout << "Argument #" << i <<" is not a number\n.";
                   return 1;
              }
              cout << param;
              sum += param;
              if (i != argc-1)
              {
                   cout << " + ";
              }
              }
                   cout << " = " << sum << endl;
 
system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2012, 15:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Командная строка (C++):

Командная строка в С++ - C++
В командной строке задается признак фигуры, объем которой необходимо вычислить: s – шар (аргумент – радиус); k – куб (аргумент –...

C++ и командная строка - C++
Как с помощью с++ открыть ком. строку и ввести команды?

командная строка - C++
вот такой вопрос: можно ли получить в переменную то, что выводится в командной строке? например, если я выполню...

Командная строка - C++
Я скомпилировал исходный код в exe, а когда запускаю этот exe командная строка сразу закрывается (я даже не успеваю посмотреть что там...

Командная строка - C++
Помогите пожалуйста с программой. Объясните, как работать с командной строкой через с++? Задание таково: - В командной строке задаются...

Командная строка - C++
Допустим мне нужно информацию команды system(&quot;wmic diskdrive get model&quot;) вывести в memo. c++ Как это сделать?

10
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
10.08.2012, 15:43 #2
Цитата Сообщение от Александер1 Посмотреть сообщение
как сделать вывод сообщений на русском языке(англ.) в командной строке?
Русские шрифты в консоли
прикрепленная тема

C++
1
float main(float argc, char* argv[])
сделайте
C++
1
int main(int argc, char* argv[])
и в конце добавить return 0;

PS: это встроенные типы для них не нужны библиотеки

у вас в цикле for i был вещественный и передавался как индекс массива
вот рабочий код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include "stdlib.h"
#include <conio.h>
#include <iostream>
#include <string>
#include <iomanip>
#include <sstream>
#include <stdexcept>
 
using namespace std;
 
float StringToInt(const char * str, bool & err)
{
    char * pLastChar = NULL;
    float param = strtol(str, &pLastChar, 10);
        err = ((*str == '\0') || (*pLastChar != '\0'));
    return param;
}
 
int main(int argc, char* argv[])
{
     if (argc <= 1)
     {
              cout << "Program calculates sum of its command line arguments.\n";
              return 0;
     }
     float sum = 0;
     for (int i = 1; i < argc; ++i)
     {
              bool err ;
              float param = StringToInt(argv[i], err);
              if (err)
              {
                   cout << "Argument #" << i <<" is not a number\n.";
                   return 1;
              }
              cout << param;
              sum += param;
              if (i != argc-1)
              {
                   cout << " + ";
              }
              }
                   cout << " = " << sum << endl;
 
system("pause");
return 0;
}
0
Александер1
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 68
10.08.2012, 16:11  [ТС] #3
подскажите ещё, как правильно записовать вещественные числа в свойствах проекта? когда праверка выполняется, пишет что это символы, а не цыфры. я пишу (2,1 3,4) .
0
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
10.08.2012, 16:14 #4
Цитата Сообщение от Александер1 Посмотреть сообщение
подскажите ещё, как правильно записовать вещественные числа в свойствах проекта?
Что такое свойства проекта и какое отношение это здесь имеет к вещественным числам?
0
-=ЮрА=-
Заблокирован
Автор FAQ
10.08.2012, 16:14 #5
Александер1, я же код готовый дал уже минут 15-ть почему не смотришь?=(
Аргументы командной строки
0
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
10.08.2012, 16:23 #6
Цитата Сообщение от Александер1 Посмотреть сообщение
подскажите ещё, как правильно записовать вещественные числа в свойствах проекта? когда праверка выполняется, пишет что это символы, а не цыфры. я пишу (2,1 3,4) .
не запятая в вещественных числах, а точка (2.1 3.4)
0
Александер1
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 68
10.08.2012, 17:00  [ТС] #7
Юр, спасибо конечно, но мне бы хотелось моим методом решить, хотя любопытно.
И через точку я тоже писал. Но выдает, записывается символ , а не число.
0
Александер1
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 68
11.08.2012, 21:32  [ТС] #8
Задача заключается в следующем, с помощью командной строки посчитать сумму вещественных чисел. Ответ должен, соответственно, быть таким же типом(чем точнее, тем лучше).
Я изучаю VS 2010 Ultimate. Буду признателен , если поможите узнать и время работы программы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include "stdlib.h"
#include <conio.h>
#include <iostream>
#include <string>
#include <iomanip>
#include <sstream>
#include <stdexcept>
 
using namespace std;
 
float StringToInt(const char * str, bool & err)
{
    char * pLastChar = NULL;
    float param = strtol(str, &pLastChar, 10);
        err = ((*str == '\0') || (*pLastChar != '\0'));
    return param;
}
 
int main(int argc, char* argv[])
{
     if (argc <= 1)
     {
              cout << "Program calculates sum of its command line arguments.\n";
              return 0;
     }
     float sum = 0;
     for (int i = 1; i < argc; ++i)
     {
              bool err ;
              float param = StringToInt(argv[i], err);
              if (err)
              {
                   cout << "Argument #" << i <<" is not a number\n.";
                   return 1;
              }
              cout << param;
              sum += param;
              if (i != argc-1)
              {
                   cout << " + ";
              }
              }
                   cout << " = " << sum << endl;
 
system("pause");
return 0;
}
При запуске выдаёт сообщение(праверки) : Argument is not a number. Что делать? В чём ошибка.
0
-=ЮрА=-
11.08.2012, 21:42
  #9

Не по теме:

Цитата Сообщение от Александер1 Посмотреть сообщение
но мне бы хотелось моим методом решить
- он неверн, т.к. для любой матоперации сложения, умножения, вычитания, деления надо 2 аргумента, тобишь как минимум надо стартовать разбор с 3-х параметров, а у тебя со скольки разбор идёт с числа больше 1-го, хорошо а чему равен результат 2 + м???Подумай сам...

0
Александер1
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 68
14.08.2012, 14:52  [ТС] #10
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

- он неверн, т.к. для любой матоперации сложения, умножения, вычитания, деления надо 2 аргумента, тобишь как минимум надо стартовать разбор с 3-х параметров, а у тебя со скольки разбор идёт с числа больше 1-го, хорошо а чему равен результат 2 + м???Подумай сам...

как мне к ниму написать .bat файл?
пишу следующее:
_____________________________

REM запуск программы без параметров
2222.exe
IF ERRORLEVEL 1 GOTO err
REM запуск программы с одним нечисловым параметром
2222.exe notANumber
IF NOT ERRORLEVEL 1 GOTO err
REM запуск программы с пустой строкой в качестве одного из параметров
2222.exe ""
IF NOT ERRORLEVEL 1 GOTO err
REM запуск программы с одним числовым параметром (и проверяем результат)
2222.exe -123 > output.txt
IF ERRORLEVEL 1 GOTO err
FC /B output.txt -123.txt
IF ERRORLEVEL 1 GOTO err
REM запуск программы с двумя числовыми параметрами
2222.exe 15 2 > output.txt
IF ERRORLEVEL 1 GOTO err
FC /B output.txt 15+2=17.txt
IF ERRORLEVEL 1 GOTO err
REM запуск программы с тремя числовыми параметрами
2222.exe 15 2 -8 > output.txt
IF ERRORLEVEL 1 GOTO err
FC /B output.txt 15+2+-8=9.txt
IF ERRORLEVEL 1 GOTO err
ECHO Program testing succeeded :-)
EXIT
:err
ECHO Program testing failed :-(
EXIT
___________________
Сразу выходит и не выполняет.
0
-=ЮрА=-
Заблокирован
Автор FAQ
14.08.2012, 14:56 #11
Александер1, прежде чем писать бат, покажи тест работы с приложением коносли cmd, также покажи окнчательную версию кода проги...
0
14.08.2012, 14:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2012, 14:56
Привет! Вот еще темы с ответами:

командная строка - C++
помогите написать программку на СИ, буду мегаблагодарна :) В параметрах командной строки передаются строковые значения. Вывести все...

Командная строка - C++
Почему при запуске скомпилированой программы, вместо русских букв у меня какая то ересь?

Командная строка - C++
Здравствуйте. Возможна тема, подобная этой уже создавалась, в любом случае не нашел и, если что - прошу прощения. Суть проблемы...

Командная строка - C++
Нужно выполнить задание, но как не пойму... Ввести n строк , найти самую короткую и самую длинную строки. Вывести найденные строки и...


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

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

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