Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2015, 10:32   #1
TheoryOfBigBum
 
Регистрация: 08.11.2015
Сообщений: 5
По умолчанию Создание приложения, которое создает себе подобные. C++

Здравствуйте, уважаемые форумчане. Недавно начал изучать C++ и решил создать программу которая копирует код из .txt и создает из него .bat(.cmd; .exe). Все создается удачно, но созданные файлы после запуска тоже должны создавать файлы(это тоже прописано), а они просто запускаются у тут же закрываются. В чем ошибка?
Код(от кода в созданных файлах отличается только значением char)
Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>;
#include <cstdio>  
 
using namespace std;
 
const char fname[] = "E:\\W\\isaac.txt";
int main()
{
 
 
    char* Ch[3] = { "E:\\W\\1.bat","E:\\W\\2.bat","E:\\W\\3.bat" };
    int i = 0;
    string str;
    ifstream file("E:\\W\\isaac.txt", ios::in);
    while (!file.eof())
    {
        getline(file, str);
 
        for (int oa = 0; oa < 3; oa++) {
            ofstream files(Ch[oa], ios::app);
            files << str << endl;
 
        }
        cout << str << endl;
    };
 
 
    system("pause");
 
    return 0;
}
TheoryOfBigBum вне форума Ответить с цитированием
Старый 08.11.2015, 19:30   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от TheoryOfBigBum Посмотреть сообщение
В чем ошибка?
батники не умеют исполнять с++ код.
и воспринимают текст, как кракозябру
_Bers вне форума Ответить с цитированием
Старый 09.11.2015, 16:21   #3
TheoryOfBigBum
 
Регистрация: 08.11.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от _Bers:
батники не умеют исполнять с++ код.
и воспринимают текст, как кракозябру
А в каком формате тогда создавать файлы?
TheoryOfBigBum вне форума Ответить с цитированием
Старый 09.11.2015, 17:16   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чет сумбур какой-то...
Может тебе стоит более... по-человечески обьяснить что имеется ввиду?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2015, 17:36   #5
TheoryOfBigBum
 
Регистрация: 08.11.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Чет сумбур какой-то...
Может тебе стоит более... по-человечески обьяснить что имеется ввиду?
Программа должна создать другую, идентичную ей, программу. Создаются эти файлы(.bat или .cmd расширениями), при открытии через блокнот весь код полностью правильный, но при простом запуске работать не хочет(запускаются, файлы не создают, выключаются).

Последний раз редактировалось TheoryOfBigBum; 09.11.2015 в 17:38.
TheoryOfBigBum вне форума Ответить с цитированием
Старый 09.11.2015, 17:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И как же, позволь спросить, выглядят созданные программой ватные коммандники?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2015, 17:48   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так а причем тут С++ если cmd или bat должны быть?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.11.2015, 17:56   #8
TheoryOfBigBum
 
Регистрация: 08.11.2015
Сообщений: 5
По умолчанию

Один мой очень хороший знакомый говорил, что код C++ находящийся в .bat; .cmd; .txt; можно легко запустить. Или это не так?
TheoryOfBigBum вне форума Ответить с цитированием
Старый 09.11.2015, 18:59   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Или это не так?
Твой знакомый сейчас с тебя ржет вовсю )))
Нет. Это по большему ложь, хотя теоретически если делать через з... кхм-хм... можно конечно решить. Доказано Орхитектаром Бабушкиным между прочим
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2015, 23:05   #10
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от TheoryOfBigBum Посмотреть сообщение
А в каком формате тогда создавать файлы?
в настоящий момент я решаю примерно такую же задачу:
программа написанная на языке с++ должна уметь создавать батники,
которые будут создавать другие программы,
написанные на языке с++.

немножко теории:

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

в результате компилятор создаст так называемые "объектники".
далее в дело вступает линкер.
ему так же нужно указать ключи,
и скормить все эти объектники.
он слинкует обжи в единое целое - программу,
которую уже можно будет запустить на выполнение.

в современных реалиях весь этот процесс контролируется
так называемыми системами сборки.

их много разных: make, nmake, qmake, cmake.
есть ещё скунсы всякие.

я пользуюсь cmake.

задача программы "медиатора" - создать бат-файл,
который будет содержать готовый скрипт для запуска
cmake с нужными настройками.

то есть, в батнике содержится код,
который запускает cmake, указав ему,
где находится сценарий сборки проекта,
в каком каталоге нужно произвести сборку,
каким компилятором, и тп.

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

далее в дело вступает cmake - это достаточно умная система сборки.
он автоматически обнаружит заявленные компилятор и линкер,
настроит для них среду, и приведет их в действие.

в общем, если вкратце, то вот так примерно и выглядит
этот многоступенчатый конвейер по производству готовых программ.
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание приложения Snow8 Софт 3 11.08.2014 15:44
создание приложения Веди Помощь студентам 4 14.07.2012 19:52
Как уменьшить вес приложения, которое не должно показываться пользователю? TwiX Общие вопросы Delphi 29 03.03.2010 00:29
создание приложения MarinaSt Общие вопросы Delphi 8 04.07.2007 23:51