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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2012, 22:45   #1
Oleg34
Пользователь
 
Регистрация: 09.09.2011
Сообщений: 48
По умолчанию Составить меню

В задании написанно. цитирую:
Составить программу на Visual Studio C++, представляющую собой меню по выбору номера задания и выбора номера задачи в выбранном задании. Задания распределены по вариантам. Номер варианта соответствует последней цифре в зачетке.
Сами задачи я решил. Но как все это связать не пойму. Допустим у меня все решения лежат по пути D/VPI/Visual Studio C++/. Например в РНР есть такая вещь, как функция fopen(),
Код:
для того, чтобы создать самый обычный файл, нужно воспользоваться функцией, которая открывает локальный или удаленный файл. Называется эта функция fopen(). Что значит «открывает файл»? Это значит, что fopen связывает данный файл с потоком управления программы. Причем связывание бывает различным в зависимости от того, что мы хотим делать с этим файлом: читать его, записывать в него данные или делать и то и другое. Синтаксис этой функции такой:
resource fopen ( имя_файла, тип_доступа [, use_include_path]);
В результате работы эта функция возвращает указатель (типа ресурс) на открытый ею файл. В качестве параметров этой функции передаются: имя файла, который нужно открыть, тип доступа к файлу (определяется тем, что мы собираемся делать с ним) и, возможно, параметр, определяющий, искать ли указанный файл в include_path
То есть, есть ли возможность так же открывать файлы на С++? Если не трудно, то код с комментариями. Заранее Всем кто откликнется СПАСИБО!
Oleg34 вне форума Ответить с цитированием
Старый 07.01.2012, 22:53   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
То есть, есть ли возможность так же открывать файлы на С++?
есть причём аналогичная
Код:
FILE *fhandle;
fhandle = fopen(file_path, mode); //в случае ошибки вернёт NULL
//работаем
fprintf, fscanf, fputs, fgets, fputc, fgetc
//
fclose(fhandle); //для закрытия
и ещё куча других методов работы с файлами
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 07.01.2012, 23:41   #3
Oleg34
Пользователь
 
Регистрация: 09.09.2011
Сообщений: 48
По умолчанию

То есть я так понимаю:

Код:
FILE *fhandle;
fhandle = fopen(file_path, mode); //в случае ошибки вернёт NULL
//fhandle = fopen(D/VPI/Visual Studio C++/, mode); Тут я указываю путь?
//работаем
{
 а как тут через switch выбирать? 
}
fprintf, fscanf, fputs, fgets, fputc, fgetc// Что если не трудно, выполняют эти команды?
//
fclose(fhandle); //для закрытия
Вы простите меня, я еще не так глубоко рублю в программировании. Ну не получается. У меня в папке /Visual Studio C++/ десять папок, по количеству решенных задач, в каждой папке еще по три. Мне надо указывать путь до каждого .срр файла?
Я так понимаю мне с консоли надо путем выбора вывести на экран номер темы и номер задачи. Можно конечно все засунуть в один код и при помощи того же switch выводить код определенной задачи. Я же думал, что есть более элегантный способ реализации. То, что Вы посоветовали, я не врубаюсь. Если Вам не трудно объясните попроще.
С уважением Олег.
Oleg34 вне форума Ответить с цитированием
Старый 07.01.2012, 23:56   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

так давайте по порядку
у вас есть куча сpp файлов с вашими лабораторками лежат они в разных папках
вам нужно написать программу в которой вы могли бы через меню выбирать свои лабораторки! ОК!
Ток терь вопрос
вам их как показать надо (код, или ехешник запустить)

1) вам надо показать код для этой лабораторки
по выбору меню дописываем путь
допустим выбрана лаба 1 ок!
пусть лабы лежат в C:\Labs
Тогда дописываем \lab1\lab1.cpp
открываем читаем и тд и тп
2) Вам нужно запустить ехе
Для Этого ShellExecute к примеру
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 08.01.2012, 09:55   #5
Oleg34
Пользователь
 
Регистрация: 09.09.2011
Сообщений: 48
По умолчанию

Спасибо! Буду пробовать.
Oleg34 вне форума Ответить с цитированием
Старый 08.01.2012, 11:58   #6
Oleg34
Пользователь
 
Регистрация: 09.09.2011
Сообщений: 48
По умолчанию

Не получается. Вот код. Что я сделал не так?
Код:
#include<iostream>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include <shellapi.h> 
using namespace std;
void main()
{
setlocale(0,"");
int n;
cout<<"Введите номер задания";
cout<<"\nВсего пять задач";
cout<<"\n1.одномерные массивы";
cout<<"\n2.двумерные массивы";
cout<<"\n3-4.подпрограммы";
cout<<"\n5.структуры";
cout<<"\nКакую задачу Вы хотите посмотреть?";
cout<<"\n№=";cin>>n;

	switch(n)
{
	case 1:ShellExecute(NULL,"open","E:/VPI/Visual Studio C++/Num_1/Debug/Num_1",NULL,NULL,1);break;
	case 2:ShellExecute(NULL,"open","E:/VPI/Visual Studio C++/Num_2/Debug/Num_2",NULL,NULL,1);break;
	case 3:ShellExecute(NULL,"open","E:/VPI/Visual Studio C++/Num_3/Debug/Num_3",NULL,NULL,1);break;
	case 4:ShellExecute(NULL,"open","E:/VPI/Visual Studio C++/Num_4/Debug/Num_4",NULL,NULL,1);break;
	case 5:ShellExecute(NULL,"open","E:/VPI/Visual Studio C++/Telefon_Book/Debug/Telefon_Book.exe",NULL,NULL,1);break;

	default:cout<<"Запрошен некорректный номер задачи"<<endl;
		
}
system("PAUSE");}
Подчеркивает ошибку тут:"open","E:/VPI/Visual Studio C++/Num_1/Debug/Num_1"
Пытался "open" заменить на "NULL" что бы система сама решала, что делать с файлом. Но все равно говорит, что "аргумент типа "const char*"не совместим с параметром LPCWSTR"
Oleg34 вне форума Ответить с цитированием
Старый 09.01.2012, 23:34   #7
Oleg34
Пользователь
 
Регистрация: 09.09.2011
Сообщений: 48
По умолчанию

Всем спасибо! Разобрался. Вместо:
PHP код:
case 1:ShellExecute(NULL,"open","E:/VPI/Visual Studio C++/Num_1/Debug/Num_1",NULL,NULL,1);break; 
Во первых путь в С++ к файлу указывается обратным двойным слешем \\
Во вторых перед "open" и "путь_к_файлу_.ехе" надо ставит L (для чего надо, я так и не выяснил, но без L не работает)
В третьих переместил папку на диск С:\
Теперь это выглядит так:
PHP код:
case 1:(UINT)ShellExecute(NULL,L"open",L"c:\\VBC\\Num_1\\Debug\\Num_1.exe",NULL,NULL,SW_SHOWNORMAL);break; 
Вместо SW_SHOWNORMAL можно ставить 1,
Теперь прошу знатоков если не трудно подсказать зачем мы прописываем (UINT), и что означает L, и есть ли еще команды?
Oleg34 вне форума Ответить с цитированием
Старый 09.01.2012, 23:48   #8
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Oleg34

Во вторых перед "open" и "путь_к_файлу_.ехе" надо ставит L (для чего надо, я так и не выяснил, но без L не работает)

это нужно для поддержки юникода. Поскольку китайцев меньше не становится, а по русски они ни фига не говорят, то если не продавать китайцам китайскую винду, то прибыль сильно уменьшится.
Поэтому все Windows имеют полностью юникодовое ядро начиная с Windows NT 3.x, а Microsoft потихоньку приучала юзеров создавать юникодовые программы. А в 2010 студии сделала этот режим по-умолчанию. Конечно, в настройках все можно взад вернуть, но для этого надо инструкцию читать, а кто же ее читает-то...
Rififi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню codrops (стильное меню), Как сделать чтобы текст не смещался в блоке? AlienNation HTML и CSS 2 28.09.2011 13:17
меню как на сайте p&g (меню ввиде таблицы) ilma55 WordPress и другие CMS 0 19.09.2010 19:09
И сново sendMessage =) Как нажать пункт верхнего меню и меню правой кнопки? TwiX Win Api 9 15.10.2009 01:57
Помогите пожалуйста решить две задачи по паскалю и составить и составить блок схему! ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 2 20.01.2009 09:37
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20