Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 07.07.2021
Сообщений: 22

Как запустить консольное приложение на другом компьютере?

09.07.2021, 14:22. Показов 3404. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я конечно понимаю, что ничего не зная в программировании слишком высоко хватанул.
Но когда зпускаю exe на другом компьютере не хочет выполняться та часть кода, что в if.
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include<iostream>
#include<string>
#include<windows.h>
//#include <cmath>
#include <cstdio>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const double G = 6.674 * pow(10, -11);
    const double g = 9.806;
    cout << "Мне реально стыдно за фигню, которую я пытался считать " << endl;
    double l;
    cin >> l;
    double r;
    r = l / 4;
    double a, Dm;
    a = g * pow(r, 2);
    Dm = a / G;
    cout << "" << endl;
    double n;
    cin >> n;
    cout << " " << endl;
    double c;
    cin >> c;
    cout << "*" << endl;
    double m;
    cin >> m;
    cout << "*" << endl;
    double A;
    cin >> A;
 
 
    double u;
 
    if (m == 0)
    {
        u = A * c * n;
        m = Dm / u;
        cout << " ";
        printf("%lf", m);
        cout << " кг" << endl;
        u = 0;
    }
 
    if (A == 0)
    {
        u = m * c * n;
        A = Dm / u;
        cout << " ";
        printf("%lf", A);
        cout << " А" << endl;
        u = 0;
    }
    
    cout << endl;
    cout << endl;
    cout << endl;
    cout << "Конец, но если не посчитало то ошибка. Как то так. " << endl; 
 
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.07.2021, 14:22
Ответы с готовыми решениями:

Как запустить программу на другом компьютере?
Создаём пустой проект windows form. Что надо выставить в компиляторе что бы программа 1) упаковала все ресурсные файлы в 1ин экзешник ...

Qt creator как запустить консольное приложение
скачал IDE Qt creator. сделал проект с таким файлом main.cpp, собрал проект, запускаю и мне запускает его снизу в поле &quot;Вывод...

Как запустить приложение windows forms на другом компьютере?
Возникла проблема с .NET Framework 4 (не запускается exe файл без него) на другом компьютере. А устанавливать нельзя. Можно ли как-то без...

34
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.07.2021, 01:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
чем привязываться к экзотическим платформам
это ты винду что ли экзотической платформой обозвал?

Добавлено через 1 минуту
Цитата Сообщение от ablex Посмотреть сообщение
Так что true way - юзать нативную UTF-16 и не выпендриваться.
продемонстрируй свой "true way" в виде исходного кода.
0
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
10.07.2021, 01:54
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Как вы себе представляете тестирование подобного кода если исходник в utf-8, ради кроссплатформенности. Ну и потому что gcc не хочет работать с utf-16.
Ты троллишь штоль?
Исходник в utf-8 никак не мешает использовать utf-16.

Исходник ниже в utf-8:
C++
1
2
const char* s="utf-8 строка"; // в винде не нужна
const wchar_t* sw = L"utf-16 строка";
GCC не дурачок тебе какой-то. Он все правильно сконвертит.

Добавлено через 7 минут
Цитата Сообщение от hoggy Посмотреть сообщение
продемонстрируй свой "true way" в виде исходного кода.
Тут уже на форуме 300 раз этот код показывали более заинтересованные люди в положительной оценке своих постов. А мне наплевать на это, я вбросил факт и дальше пошел. Мож теперь через месяц меня увидишь, а может и не увидишь.

Тем не менее:
Internally, QString stores the string using the UTF-16 encoding. Each of the 2 bytes of UTF-16 is represented using a QChar. One main reason to use UTF-16 as the internal representation is that it makes it fast to use them with native unicode APIs' on the Mac OS X and Windows (which expect UTF-16).
https://wiki.qt.io/QString

B я чой-то не пойму почему у Qt-шников понимание нужное пришло, и кроссплатформенности оно никак не помешало, а тут на форуме у некоторых с этим постоянно проблемы.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.07.2021, 03:57
Цитата Сообщение от ablex Посмотреть сообщение
А мне наплевать на это, я вбросил факт и дальше пошел
ясно.
балабольство не интересно.

Цитата Сообщение от ablex Посмотреть сообщение
B я чой-то не пойму почему у Qt-шников понимание нужное пришло, и кроссплатформенности оно никак не помешало
с QT ты, конечно, погорячился.

а теперь горькая правда жизни:
устанавливаешь новенький QtCreator
и настраиваешь сборку студийным компилятором.
затем запускаешь сборку.
и видишь кракозябры в output консоли QtCreator.
(руссифицированая студия тащит руссифицированный компилятор)

эта проблема известная.
есть куча решений разной степени через-жопнутости.

а ещё есть оффициальный баг.
обрати внимание: им понадобилось 11 лет, что бы его закрыть.
на самом деле баг никуда не делся.
я недавно запускал сборку, и там по прежнему кракозябры.

резюмируя:
у тебя либо есть код, который на практике иллюстрирует твои тезисы.
либо нет.

всякого рода аппеляции к QT,
и прочие голословные бла-бла-бла - не интересны.
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
10.07.2021, 08:56
Цитата Сообщение от hoggy Посмотреть сообщение
это ты винду что ли экзотической платформой обозвал?
Да. У нее вечно какие-то проблемы с поддержкой стандартов. Если хочется писать правильно, на нее нужно ориентироваться в последнюю очередь.
Цитата Сообщение от hoggy Посмотреть сообщение
продемонстрируй свой "true way" в виде исходного кода.
Так вот же.
Цитата Сообщение от ablex Посмотреть сообщение
Исходник ниже в utf-8:
На первый взгляд работает (нужно только добавить _setmode(_fileno(stdin/stdout/stderr), _O_U16TEXT);).
Правда, ввод там все еще не работает.
Если возникнет задача выводить русский текст в виндовой консоли (надеюсь, не скоро), помедитирую подольше.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
10.07.2021, 13:15
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Правда, ввод там все еще не работает.
Ввод не работает из-за недостатков реализации IO в mingw. По лицензионным причинам разработчики не могут использовать современный runtime, в котором они исправлены.
Если это сделать в VS
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
_setmode(_fileno(stdin/stdout/stderr), _O_U16TEXT);
то все будет работать.
https://www.youtube.com/watch?v=7EvEV5upzKo
1
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
10.07.2021, 14:24
То есть нормального ввода юникода в винде нет и не скоро будет. Казалось бы, за такое время могли бы и починить.
Значит так и буду говорить в дальнейшем: вывод юникода в винде пусть криво, но работает, ввод не работает вовсе и, стараниями майкрософта, починить это нельзя.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
10.07.2021, 14:42
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
То есть нормального ввода юникода в винде нет
Да ну как нет-то? Есть.
Просто MinGW - это аутсайдер бесправный и не может использовать полноценно все доступные средства.

Добавлено через 13 минут
Нативные функции, WriteConsole, ReadConsole, даже в _setmode не нуждаются. Если сделать реализацию streambuf на основе них, то работать будет даже в mingw. Я тут кое-где показывал макет.
Т.е. максимум можно сказать, что у MinGW в его runtime до сих пор проблемы с вводом. Но это ведь исключительного его проблемы, а не "винды".
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
10.07.2021, 22:56
Цитата Сообщение от DrOffset Посмотреть сообщение
Да ну как нет-то? Есть.
Вы же сами сказали, что сделать человеческую реализацию майкрософты запрещают.
...особенно учитывая, что в других системах костыли вроде SetConsoleCP, _setmode просто не нужны...
Цитата Сообщение от DrOffset Посмотреть сообщение
Если сделать реализацию streambuf на основе них
Ну то есть городить совсем уж монструозные костыли. Повторяю: ввод-вывод текста это базовый функционал системы.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
10.07.2021, 23:30
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну то есть городить совсем уж монструозные костыли.
Зачем?
Это можно было бы сделать на стороне библиотеки, поставляемой с компилятором.

Т.е. на самом деле тут две проблемы, одна, озвученная выше - это неполноценная работа _setmode, из-за старого рантайма, и невозможности использовать новый.
А вторая - это нежелание или отсутствие возможности (финансовой, например) у самих mingw-шников сделать полноценную поддержку локалей как в gcc, сделать приличную реализацию iostreams и т.п.
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
11.07.2021, 07:57
Цитата Сообщение от DrOffset Посмотреть сообщение
Это можно было бы сделать на стороне библиотеки, поставляемой с компилятором.
Это задача консоли вообще-то, а не прикладной программы. Программе не должно быть разницы куда выводить - в терминал, файл или канал. Собственно, поэтому в SetConsoleCP, _setmode надобности вообще возникать не должно кроме каких-то экзотических случаев.
Цитата Сообщение от DrOffset Посмотреть сообщение
А вторая - это нежелание или отсутствие возможности (финансовой, например) у самих mingw-шников
Видимо, борьба с багами винды оказалась слишком сложной даже для них. Не исключаю, что там какое-то фундаментальное ограничение вроде невозможности отличить консоль от перенаправления в файл.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
11.07.2021, 09:59
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Собственно, поэтому в SetConsoleCP, _setmode надобности вообще возникать не должно кроме каких-то экзотических случаев.
На любой платформе есть такие "приколы". Не в этом аспекте, так в другом. Вы передергиваете.

Официальный компилятор для платформы работает? Работает.
Еще есть Intel Сompiler, который тоже работает.
Еще есть Сlang, в варианте исполнения фронтенда на MS-инструментарий, и он тоже работает.

Так что вы просто нечестно трактуете факты. Поддержки нет не в "винде", а в MinGW.

Добавлено через 8 минут

Не по теме:

Да, и чтобы было понятно. Я тут не винду защищаю, мне самому эти пляски не нравятся, я защищаю справедливые суждения. Нельзя на техническом форуме искажать факты через призму собственной неприязни.

1
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
11.07.2021, 11:34
Как есть, так и трактую. Код
C
1
2
3
4
5
6
#include <stdio.h>
#include <locale.h>
 
int main(){
  printf("Какая-то строка\n");
}
по-хорошему должен одинаково работать везде - хоть в консоль, хоть при перенаправлении в файл, хоть на stdin другой программы. Ладно, я согласен что кодировки появились настолько давно, что не имеют единого механизма. Так что добавление одной функции указания выходной кодировки оправдано.
Цитата Сообщение от DrOffset Посмотреть сообщение
Да, и чтобы было понятно. Я тут не винду защищаю, мне самому эти пляски не нравятся, я защищаю справедливые суждения. Нельзя на техническом форуме искажать факты через призму собственной неприязни.
Ну так будьте объективны!
Городить костыли с кодировками приходится только в винде. Бороться с вводом-выводом юникода тоже.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
11.07.2021, 12:08
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну так будьте объективны!
Городить костыли с кодировками приходится только в винде. Бороться с вводом-выводом юникода тоже.
Ну вообще говоря бороться приходится только в консоли. А для винды, это мягко говоря, не самое приоритетное направление. Графические приложения с юникодом работают без проблем.
К тому, же, если уж речь про объективность, то объективным было бы понимание, что у винды большой ориентир на legacy, поэтому все это так медленно меняется, поэтому консоль все еще по умолчанию в досовской кодировке. Доля консольных приложений на винде ничтожно мала. Объективным было бы учитывать это в выводах.

Однако я в целом с вами не спорил нигде. Я спорил с совершенно четкой и конкретной вашей формулировкой, по поводу совершенно конкретного случая. Не надо пытаться все представить так, будто бы я в чем-то фундаментально с вами не согласен. Вот сказали бы вы, что не в "винде", а в "mingw", то и вопросов бы с моей стороны не было.
У винды есть официальный компилятор, и в нем ввод\вывод в консоль в юникоде не представляет никаких проблем. Этого вполне достаточно, чтобы опровергнуть ваше первоначальное заявление:
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
нормального ввода юникода в винде нет
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
по-хорошему должен одинаково работать везде - хоть в консоль, хоть при перенаправлении в файл, хоть на stdin другой программы.
Из-за наличия русского языка этот код сразу же перестает претендовать на работоспособность "везде" по причине наличия чертовой тучи разных кодировок. Это обще-IT-шная проблема, а не проблема винды. У всех существующих систем можно найти такие случаи, когда из-за кодировки что-то сломается.
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
11.07.2021, 14:16
Цитата Сообщение от DrOffset Посмотреть сообщение
Ну вообще говоря бороться приходится только в консоли. А для винды, это мягко говоря, не самое приоритетное направление.
у винды большой ориентир на legacy, поэтому все это так медленно меняется, поэтому консоль все еще по умолчанию в досовской кодировке. Доля консольных приложений на винде ничтожно мала. Объективным было бы учитывать это в выводах.
Вот это уже объективный подход!
Но вы говорите о причинах, а не о следствии.
Цитата Сообщение от DrOffset Посмотреть сообщение
Графические приложения с юникодом работают без проблем.
Графические приложения в половине случаев рисуют текст сами, отдавая операционке готовую картинку.
Цитата Сообщение от DrOffset Посмотреть сообщение
Вот сказали бы вы, что не в "винде", а в "mingw"
А что, если использовать низкоуровневый вывод через всякие WriteFile без предварительной настройки, оно волшебным образом починится? Насколько я слышал, этот FileWrite - чуть ли не системный вызов, практически без постобработки библиотекой компилятора.
Цитата Сообщение от DrOffset Посмотреть сообщение
У винды есть официальный компилятор, и в нем ввод\вывод в консоль в юникоде не представляет никаких проблем.
По темам на форуме этого не скажешь. Очень часто встречаются те самые переключения на cp1251 именно для того чтобы безграмотно писать приглашения на русском, вместо безграмотного написания на английском.
Цитата Сообщение от DrOffset Посмотреть сообщение
Из-за наличия русского языка этот код сразу же перестает претендовать на работоспособность "везде" по причине наличия чертовой тучи разных кодировок. Это обще-IT-шная проблема, а не проблема винды. У всех существующих систем можно найти такие случаи, когда из-за кодировки что-то сломается.
Уже давно не встречал проблем с кодировками в других местах. Что в интернете, что в юникс-подобных давно перешли на utf-8 и забыли про зоопарк кодировок.
Хотя, насколько я слышал, в Tex и sms-сообщениях используются свои легаси-кодировки, с которыми таки возникают проблемы.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
11.07.2021, 14:53
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А что, если использовать низкоуровневый вывод через всякие WriteFile без предварительной настройки, оно волшебным образом починится?
Я же выше об этом сказал. Низкоуровневые функции консоли WriteConsole\ReadConsole не нуждаются ни в какой предварительной настройке.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
По темам на форуме этого не скажешь.
Форум для начинающих же. Не показатель. Потому что тут в большинстве случаев начинающие дают советы начинающим на основе информации, которую они получили 5 минут назад из гугла.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Графические приложения в половине случаев рисуют текст сами, отдавая операционке готовую картинку.
А я как раз говорю о рисовании "операционкой", с юникодом там нет проблем.
Проблемы остались только в консоли.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2021, 14:53

Как запустить программу на другом компьютере?
Есть комп вин 7 64, на нем стоит прога для 64, запускается через файл *.cmd Как можно запустить этот файл *.cmd с компьютера под вин XP...

Как запустить программу на другом компьютере
Доброго времени суток! Приложение на WinApi VC++ 2010 Express.. На других компах вылетает в ошибку (типо отправлять/не отправлять...

Как запустить программу на другом компьютере?
Написал я приложение, хочу чтобы пользовались на другом компьютере. Как это лучше осуществить? Не кидать же всю папку с проектом?

Как запустить ЧЕРТОВУ программу на другом компьютере?
Понимаете... Я потратил 4(!!!!) чертовых дня на эту проблему. Прошел все круги ада, все сделал! А эта сволочь так и не запускается... Читал...

Как запустить Delphi2010-программу(exe-шник) на другом компьютере
Уважаемые эксперты, помогите пожайлуста, не могу запустить exe-шник, созданный с помощью Delphi 2010 на другом компьютере, на котором не...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru