Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70

Не запускает программу через cmd

27.12.2014, 23:50. Показов 2515. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если вручную запускать .exe, то программа нормально все делает, но если запускать через cmd получаю лишь черный екран, как от cmd но без текста.
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// TEXT.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
 
#include <iostream>
#include <fstream>
 
using namespace std;
 
const char fname[] = "in.txt";
int main()
{
    setlocale(LC_ALL, "Russian");
    size_t count = 0; //Число символов в файле
    char S; //для подсчета символов
 
    /*Просто считаем число символов*/
    ifstream f(fname);
    while (!f.eof())
    {
        f.get(S);
        count++;
    }
    f.close();
 
    /*Добавляем текст в переменную*/
 
    char *S2 = new char[count]; //Выделяем память по определенному числу символов
    for (int i = 0; i<count; i++) S2[i] = NULL; //Очищаем строку от хлама
    ifstream f2(fname);  //создаем поток для работы с файлом
    int i = 0; //куроср на текущий символ (как номер буквы в слове)
 
    while (!f2.eof()) //Проходим ао файлу
    {
        f2.get(S2[i]); //Записываем симыол за символом 
        i++; //передвинули курсор для записи следующего символа
    }
 
    f2.close(); //закончили работу с файлом
    cout << S2 << endl; //Теперь переменная char[] содержит текст из файла
    char str2[1000];
    for (int i = 0; i < 1000; i++)
    {
        str2[i] = 0;
    }
    i = 0;
    while (i < strlen(S2))
    {
        if (S2[i] == ' ' && S2[i + 1] == ' ')
        {
            int q = i;
            while (q < strlen(S2))
            {
                S2[q] = S2[q + 1];
                q++;
            }
        }
        if (S2[i] == '\t' && S2[i + 1] == '\t')
        {
            int q = i;
            while (q < strlen(S2))
            {
                S2[q] = S2[q + 1];
                q++;
            }
        }
        if (S2[i] == S2[i + 1])
        {
            int q = i;
            while (q < strlen(S2))
            {
                S2[q] = S2[q + 1];
                q++;
            }
        }
        else
        {
            str2[i] = S2[i];
            i++;
        }
    }
    ofstream fout("out.txt"); // создаём объект класса ofstream для записи и связываем его с файлом 
    fout << str2; // запись строки в файл
    fout.close(); // закрываем файл
    cout << "Редактированный файл: " << endl;
    cout << str2 << endl;
    system("pause");
    /**************************************/
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2014, 23:50
Ответы с готовыми решениями:

Не запускает 2 программу
Здравствуйте. Я новичок в изучении программного языка С++. Использую я Visual Studio 2012. Я создал проект(ниже 4 папки), я создал элемент...

Не запускает программу после компиляции
Дело в том что когда проверяю код на ошибки всё нормально, но когда нажимаю &quot;запустить&quot; мне выдает что его нужно сначала...

Bat файл запускает 2 процесса cmd
Добрый день, прошу подсказать что у меня не так. Суть кода - запуск батника - проверка на наличие файла в папке - если файла нет -...

12
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
27.12.2014, 23:53
RamzezUA, папку с программой добавили в исключения антивируса?
0
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
28.12.2014, 00:07  [ТС]
Да, даже если отключить антивирус, ничего не меняется
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
28.12.2014, 00:13
что значит в ручную и через cmd. вроде одно и то же.
попробуйте поотлаживать выводом на печать шагов выполнения.
первая печать - в самом начале. так вы поймете, доходит дело до main или нет.
если доходит - то дальше расставляйте печатающие метки и так может и локализуете
проблемное место. если же до main не доходит - то фиг знает что у вас. проблема тогда
скорее всего не в коде а в сборке экзешника, в окружении или хз в чем.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 02:05
Открытие файла для чтения всегда проверять нужно. Покажи, как запускаешь через cmd, и где при этом файл для чтения находится (скорее всего, в нужно месте его нет, и проверки на открытие нет).

Добавлено через 16 минут
Подсчёт символов в файле неправильный, выдаст реэультат на единицу больше. Если бы не это:
Цитата Сообщение от RamzezUA Посмотреть сообщение
C++
1
for (int i = 0; i<count; i++) S2[i] = NULL; //Очищаем строку от хлама
то вывод строки был бы интересным.
0
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
28.12.2014, 04:18  [ТС]
start E:\VS2013\TEXT\Debug\TEXT.exe
файл in.txt 100% присутствует, находится в E:\VS2013\TEXT\TEXT, так же в дебаге. Если убрать из E:\VS2013\TEXT\TEXT файл in, то Visual Studio тоже вьідаст просто черньій екран.
А что именно не правильно?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 04:39
Вот это сделайте:
Цитата Сообщение от lss Посмотреть сообщение
Открытие файла для чтения всегда проверять нужно.
По результату работы, с такой проверкой, дальше можно будет думать.

Добавлено через 4 минуты
Цитата Сообщение от RamzezUA Посмотреть сообщение
файл in.txt 100% присутствует, находится в E:\VS2013\TEXT\TEXT
Что за \TEXT\TEXT? Опечатка?
0
1 / 1 / 0
Регистрация: 18.09.2014
Сообщений: 70
28.12.2014, 04:51  [ТС]
хм, теперь привью себе привьічку и обязаность проверять на открьітие. Вьідало ошибку, только не пойму почему, хотя если напряму запускать .exe то все запускается.
P.S. Специально всюду скопировал in и out файльі по проекту, все-равно ошибка при запуске через cmd.
p.S.S.нет, то VS создает в папке с проектом еще 1 папку с таким же названиемю
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 05:13
Проблема в том, что, если путь к файлу неполный, то файл должен быть там, ОТКУДА запуск идёт команды на выполнение. В коде полный путь к файлу пропишите (только обратные двойные слеши не забудьте), и всё должно заработать.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
28.12.2014, 06:19
Проблема в том, что когда студия запускает программу, она текущую папку выставляет на папку проекта, а не на ту папку, где лежит программа.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 18:10
Цитата Сообщение от Black Fregat Посмотреть сообщение
Проблема в том, что когда студия запускает программу, она текущую папку выставляет на папку проекта, а не на ту папку, где лежит программа.
Разговор идёт не о запуске из студии, а о запуске из командной строки.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
28.12.2014, 18:27
Цитата Сообщение от lss Посмотреть сообщение
Разговор идёт не о запуске из студии, а о запуске из командной строки.
Разговор идет о том, что у ТС программа ведет себя по-разному при запуске из студии и из командной строки.
Так вот из студии она находит файл именно потому, что текущая директория при этом - другая.
Иначе говоря, чтобы из cmd запустилось точно так же, как из студии, нужно стать на папку выше и запустить Debug\TEXT.exe

А вот как решать эту проблему - пусть решает ТС. То ли положить копию файла еще и в Debug, то ли прописывать абсолютные пути - вариантов много.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 19:21
Цитата Сообщение от Black Fregat Посмотреть сообщение
То ли положить копию файла еще и в Debug
Это для кого пишется?
Цитата Сообщение от RamzezUA Посмотреть сообщение
файл in.txt 100% присутствует, находится в E:\VS2013\TEXT\TEXT, так же в дебаге.
Цитата Сообщение от Black Fregat Посмотреть сообщение
Разговор идет о том, что у ТС программа ведет себя по-разному при запуске из студии и из командной строки.
Ещё раз: разговор идёт о запуске из командной строки, забудь о студии, там у ТС всё нормально запускается. Вопрос сводится к следующему: где должен находиться текстовый файл, при запуске exe из командной строки, если путь к текстовому файлу в коде не полный?
Ответ: в текущем рабочем каталоге командной строки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2014, 19:21
Помогаю со студенческими работами здесь

Отловить завершение процедуры, которая запускает окно cmd
Здравствуйте парни! Раньше пользовался макрокомандами, сейчас стараюсь полностью на VBA перейти, частично появились проблемы. Прошу...

Как запустить программу через cmd
Как запустить эту программу через cmd? import java.util.Scanner; import mpi.MPI; import mpi.MPIException; public class...

Как скомпилировать программу через cmd?
Здравствуйте,нередко встречаю в книге Шилдта примеры компиляции кода с помощью командной строки. Выглядит это у него так: CopyFile...

Как установить программу через cmd?
Как установить программу через cmd?:wall: пробовал вот так (у меня не работает) start setup-camstaziav7.0.2.0.1_lichensia_crack.exe...

Runtime.getRuntime().exec(cmd). Запускает только по закрытию приложения
Приветствую! Суть задачи запустить программу передав ей параметры. Сейчас программа запускается, но только после закрытия текущей. ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru