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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2015, 22:38   #121
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Цитата:
Сообщение от Malriser Посмотреть сообщение
Зачем свой string реализовывать??)))

Наследование от string сразу сделать можно
Я ж не знал, да и пока что голову больше ломал как закодировать ключом. Жаль поспешили с кодом. Задайте задание задание , кто может, с поиском материала, само по себе простое, для повышения знаний. На подобие кода Цезаря, почитать про этот метод интересно было. Т.е. реализовать все стандартные библиотеки класса string или еще что то похожее, я просто не знаю хорошая это идея)
Dima-91 вне форума Ответить с цитированием
Старый 17.12.2015, 00:40   #122
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Цитата:
Сообщение от Dima-91 Посмотреть сообщение
Я ж не знал, да и пока что голову больше ломал как закодировать ключом. Жаль поспешили с кодом. Задайте задание задание , кто может, с поиском материала, само по себе простое, для повышения знаний. На подобие кода Цезаря, почитать про этот метод интересно было. Т.е. реализовать все стандартные библиотеки класса string или еще что то похожее, я просто не знаю хорошая это идея)
Как по мне наследование от стандартного C++'шного кода довольно полезное занятие, разберешься с наследованием и т.д

Ладно, если наподобии кода цезаря, чтобы погуглить, то вот тебе задачка:

Задача

На вход программе передается путь до файла, внутри которого содержатся k ссылок, хранящиеся со следующей структурой:

Код:
<start>
<url_1>http://example.com</url_1>
<url_2>http://site.com</url_2>
...
<url_k>http://super.com</url_k>
<end>
Требуется написать программу, которая считывает ссылки, выводит их в консоли, их номер и открывает в браузере с помощью WinAPI ( будет вызов только одной функции )

Пример:


на вход из файла:

Код:
<start>
<url_1>http://google.com</url_1>
<url_2>http://yandex.ru/url_2>
<url_3>http://facebook.com</url_3>
<url_4>http://vk.com</url_4>
<end>
В консоли:
[1] http://google.com
[2] http://yandex.ru
[3] http://facebook.com
[4] http://vk.com

+Каждая из этих ссылок должна открыться в браузере

Последний раз редактировалось Malriser; 17.12.2015 в 00:43.
Malriser вне форума Ответить с цитированием
Старый 19.12.2015, 13:35   #123
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Код:
#include <stdio.h>
#include <fstream>
#include <iomanip>
#include <stdlib.h>
#include <iostream.h>
#include <string>
#include <Shellapi.h>

 int _tmain(int argc, _TCHAR* argv[])
{
	ifstream F;
	string s,ss;
	F.open("web.txt", ios::out);
	while (!F.eof())
	{
		int k = 1;
		getline(F,s);
		if ((s != "<start>") && (s != "<end>"))
		{
			k++;
			ShellExecute(Handle, L"open", s, 0, 0, SW_SHOWNORMAL);
			cout<<"["<<k<<"]"<<s;
		}
	}
	system("pause");
	return 0;
}
Только ошибку выдает как добавил <Shellapi.h>.

Открывается дополнительно Shellapui.h
и вот какой текст где ошибки прописываются:
Код:
[bcc32 Error] Shellapi.h(57): E2275 { expected
[bcc32 Error] Shellapi.h(60): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(62): E2238 Multiple declaration for 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(60): E2344 Earlier declaration of 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(62): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(68): E2238 Multiple declaration for 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(62): E2344 Earlier declaration of 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(68): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(69): E2238 Multiple declaration for 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(68): E2344 Earlier declaration of 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(69): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(70): E2238 Multiple declaration for 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(69): E2344 Earlier declaration of 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(70): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(72): E2238 Multiple declaration for 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(70): E2344 Earlier declaration of 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(72): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(74): E2238 Multiple declaration for 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(72): E2344 Earlier declaration of 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(74): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(82): E2238 Multiple declaration for 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(74): E2344 Earlier declaration of 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(82): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(84): E2238 Multiple declaration for 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(82): E2344 Earlier declaration of 'EXTERN_C'
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h
[bcc32 Error] Shellapi.h(84): E2141 Declaration syntax error
  Full parser context
    webm1.cpp(17): #include g:\embarcadero\include\windows\sdk\Shellapi.h

Последний раз редактировалось Dima-91; 19.12.2015 в 16:29.
Dima-91 вне форума Ответить с цитированием
Старый 19.12.2015, 15:04   #124
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Нам надо догадаться что за ошибка?
waleri вне форума Ответить с цитированием
Старый 19.12.2015, 16:30   #125
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

я чуточку удалил т.к. все сообщение не влазят в пост
может из-за того что s = string, а нужно char(w_cahrt)?
Dima-91 вне форума Ответить с цитированием
Старый 19.12.2015, 16:50   #126
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

windows.h вроде надо заинклюдить перед ним.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.12.2015, 18:34   #127
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
windows.h вроде надо заинклюдить перед ним.
помогло от части, 3 ошибки осталось
Код:
[bcc32 Error] webm1.cpp(32): E2451 Undefined symbol 'Handle'
  Full parser context
    webm1.cpp(21): parsing: int main(int,char * *)
[bcc32 Error] webm1.cpp(32): E2034 Cannot convert 'wchar_t const[5]' to 'const char *'
  Full parser context
    webm1.cpp(21): parsing: int main(int,char * *)
[bcc32 Error] webm1.cpp(32): E2342 Type mismatch in parameter 'lpOperation' (wanted 'const char *', got 'const wchar_t *')
  Full parser context
    webm1.cpp(21): parsing: int main(int,char * *)
Dima-91 вне форума Ответить с цитированием
Старый 19.12.2015, 18:54   #128
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну вы читаете не-юникод строки, а используете (если не старая версия билдера) юникод версию ShellExecute (ShellExecuteW).

Либо читайте как юникод (wifstream вроде), либо ShellExecuteA вызывайте.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.12.2015, 18:54   #129
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Почему перед "open" вы поставили L а перед другими строчками нет?
waleri вне форума Ответить с цитированием
Старый 19.12.2015, 20:21   #130
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Почему перед "open" вы поставили L а перед другими строчками нет?
Скопипастил функцию ShellExecute, вставил свое значение ( "s" ). Буква L, роли не сыграет,наверное, только тип ошибки изменяется:

без L:
[bcc32 Error] webm1.cpp(32): E2034 Cannot convert 'string' to 'const char *'
Dima-91 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что вас мотивирует, почему вы предпочитаете именно работу за компьютером, работу программиста? sgasgar Свободное общение 47 03.05.2016 07:27
Какая у вас была мотивация для начала и изучения программирования? monolit9951 Свободное общение 22 14.02.2014 19:57
Мотивация к программированию Nik_Parker Свободное общение 30 05.10.2013 19:12
Программирование, мотивация, перспективы Frants Свободное общение 6 03.10.2012 23:52