Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1058
от 19.04.2008, 02:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 472, Экспертов: 54
В номере:Вопросов: 4, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 131929: Здравствуйте! Я столкнулся с некоторыми сложностями при написании программы на СИ. Проблема такая: Надо чтобы программа создавала папку, в этой папке ещё папку и в ней файл. Затем программа должна запустить другую программу. Все эти инструкци...
Вопрос № 131972: Уважаемые эксперты, вот вопрос: Классы. Синтаксис классов. Заранее благодарю....
Вопрос № 131984: Дана матрица А размером mxn, найти такой столбец, в котором сумма нечётных элементов максимальна, и изменить порядок элементов в нём на обратный....
Вопрос № 132063: Здравствуйте! Есть проблема. Начал программировать на Visual C++ Visual Studio 2005. Программировал на Borland C++ 6 версии. Как известно в Borland набор инструментария больше, на VS это все надо подключать через Add-in, но полного описания всех библ...

Вопрос № 131.929
Здравствуйте! Я столкнулся с некоторыми сложностями при написании программы на СИ. Проблема такая:
Надо чтобы программа создавала папку, в этой папке ещё папку и в ней файл.
Затем программа должна запустить другую программу. Все эти инструкции заключены в оператор if(). Проблема в том что я не знаю как на СИ создавать папку и запускать программы. Я попробовал сделать так.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define FTEXT “C:\text.docVoid main()
{
int x, y;
char ftext[2] = FTEXT;

FILE *in;
scanf(“%d”, x);

if(x == 1)
{
system(“MD C:\test\test2”);
in = fopen(ftext, “wt”);
fprintf(“text……… ”);
}

if(x == 2)
{
system(CLS”);
system(“MD D:\text\test2”);
in = fopen(ftext, “wt”);
}

else
{
printf(“text”);
getch();
return;
}

scanf(“%d”, y);

if(y == 1)
system(START prog1.exe);

if(y == 2)
system(“START prog2.exe);

else
{
printf(“text”);
getch();
return;
}
}

У меня ничего не получилось, prog1.exe и prog2.exe не запустились, если значение x > 2 сначала почему-то выполняется оператор if, а затем else, в результате оба оператора выполняются вместе. Пробовал в конце if добавить return; ничего не изменилось. Подскажите, как можно создать директорию, запустить программу другим способом и в чём ошибка из-за чего оператор if else работает неправельно.
Заранее благодарю.
Исходни программы:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

#define FILES1 "C:\dir1\dir2\dir3\dir4\file.html#define FILES2 "D:\dir1\dir2\dir3\dir4\file.html#define FILES3 "E:\dir1\dir2\dir3\dir4\file.html#define FILES4 "F:\dir1\dir2\dir3\dir4\file.html#define FILES5 "C:\dir1\dir2\dir3\dir4\file.html2#define FILES6 "D:\dir1\dir2\dir3\dir4\file.html2#define FILES7 "E:\dir1\dir2\dir3\dir4\file.html2#define FILES8 "F:\dir1\dir2\dir3\dir4\file.html2#define FILES9 "C:\dir1\dir2\dir3\dir4\file.html3#define FILES10 "D:\dir1\dir2\dir3\dir4\file.html3#define FILES11 "E:\dir1\dir2\dir3\dir4\file.html3#define FILES12 "F:\dir1\dir2\dir3\dir4\file.html3
void main()
{
char file1[500] = FILE1;
char file2[500] = FILE2;
char file3[500] = FILE3;
char file4[500] = FILE4;
char file5[200] = FILE5;
char file6[200] = FILE6;
char file7[200] = FILE7;
char file8[200] = FILE8;
char file9[50] = FILE9;
char file10[50] = FILE10;
char file11[50] = FILE11;
char file12[50] = FILE12;

int dir;
int conf;

FILE *in;

system("TITLE Prog v1.0");
printf("text ");
printf("Для продолжения нажмите <ENTER>");
getch();

system("CLS");
printf("text ");

scanf("%d", &dir);
system("CLS");
printf("Если при text ");
printf("Введи число->");
scanf("%d", &conf);

if (dir == 1)
{
system("CLS");
system("START file.exe");
in = fopen(file1, "wt");
fprintf(in, "text ");

in = fopen(file2, "wt");
fprintf(in, "text ");

in = fopen(file3, "wt");
fprintf(in, "text ");
return;
}

if (dir == 2)
{
system("CLS");
system("file.exe");
in = fopen(file4, "wt");
fprintf(in, "text ");

in = fopen(file5, "wt");
fprintf(in, "text");

in = fopen(file6, "wt");
fprintf(in, "text");
return;
}

if (dir == 3)
{
system("CLS");
system("file.exe");
in = fopen(file7, "wt");
fprintf(in, "text ");

in = fopen(file8, "wt");
fprintf(in, "text ");

in = fopen(file9, "wt");
fprintf(in, "text");
return;
}

if (dir == 4)
{
system("CLS");
system("file.exe");
in = fopen(file10, "wt");
fprintf(in, "text ");

in = fopen(file11, "wt");
fprintf(in, "text ");

in = fopen(file12, "wt");
fprintf(in, "text");
return;
}

else
{
system("CLS");
printf("texta");
getch();
return;
}

if (conf == 1)
{
system("START prog1.exe");
return;
}

if (conf == 0)
{
system("START prog2.exe");
return;
}

else
{
printf("texta");
getch();
return;
}
}


Отправлен: 13.04.2008, 05:22
Вопрос задал: Грибанов Фёдор Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: kool
Здравствуйте, Грибанов Фёдор Александрович!
В WinAPI для создание каталога есть ф-ция
CreateDirectory (см. MSDN). По заданному пути создать
файл можно с помощью CreateFile.
Для изменения рабочего каталога используйте ф-цию
int _chdir( const char *dirname );
При запуске программ возможно нужно указывать полный путь.
Где в вашей прогамме нужно открыть файл и создать каталог - понятия не имею.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 13.04.2008, 10:05
Оценка за ответ: 5
Комментарий оценки:
Благодарю за помощь. Всё получилось, работает!


Вопрос № 131.972
Уважаемые эксперты, вот вопрос:
Классы. Синтаксис классов.
Заранее благодарю.
Отправлен: 13.04.2008, 13:02
Вопрос задал: SERG29 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: shayen
Здравствуйте, SERG29!
Вот как по этому вопросу пишет Шилдт в своём справочнике:
Классы созадются с помощью ключевого слова class.Объявление класса определяет новый тип,связывающий код и данные между собой.Таким образом,класс является логической абстракцией,а обьект-её физическим воплощением.Иными словами,объект-это экземпляр класса.
Объявление класса похоже на объявление структуры.Полная общая форма объявления класса:
class имя_класса{
закрытые данные и функции
спецификаторы доступа:
данные и функции
спецификаторы доступа:
данные и функции
//...
спецификаторы доступа:
данные и функции
}список_объектов;
Список объектов указывать не обязательно.Он просто позволяет объявлять объекты класса.В качестве спецификаторов доступа используются:public-члены класса открыты для доступа извне с его помощью можно создать член класса,доступный для использования всемы функциями программы,privat-члены класса закрыты для доступа извне.По умолчанию все переменные и функции принадлежащие классу являются private.
Синтаксис для доступа к данным конкретного объекта класса:
имя_объекта.имя_члена_класса.
Ответ отправил: shayen (статус: 5-ый класс)
Ответ отправлен: 13.04.2008, 14:24
Оценка за ответ: 5
Комментарий оценки:
[jhjij


Вопрос № 131.984
Дана матрица А размером mxn, найти такой столбец, в котором сумма нечётных элементов максимальна, и изменить порядок элементов в нём на обратный.
Отправлен: 13.04.2008, 14:06
Вопрос задал: Андрей, Андрей, Андрей
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: shayen
Здравствуйте, Андрей, Андрей, Андрей!
код программы в приложении компилировался под VS 2005

Приложение:

Ответ отправил: shayen (статус: 5-ый класс)
Ответ отправлен: 13.04.2008, 16:22


Вопрос № 132.063
Здравствуйте! Есть проблема. Начал программировать на Visual C++ Visual Studio 2005. Программировал на Borland C++ 6 версии. Как известно в Borland набор инструментария больше, на VS это все надо подключать через Add-in, но полного описания всех библиотек подключаемых у меня нет. Тут и возникает трудность использования всех необходимых инструментов для приложения. В частности нужен элемент TChart в VS! Возможно существует полный список с подробным описанием всех библиотек и элементов в VS? Заранее, благодарен!
Отправлен: 13.04.2008, 21:23
Вопрос задал: Salmon (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сандров Алекс
Здравствуйте, Salmon!

Есть такая буква.

В VC6:

Меню Project->Add to project->Components and controls
откроест окошко с выбором заинсталлированных компонентов.

В папке Registered ActiveX controls есть компонент Microsoft Chart Controls.

Когда его выберете, студия подвяжет к проекту нужные врапперы для работы с ним.
Ответ отправил: Сандров Алекс (статус: 7-ой класс)
Ответ отправлен: 14.04.2008, 06:54


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.91 pre 5.0 RC1 от 13.04.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное