ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[c/c++] Новичкам: задаем вопросы
  #1  
Старый 26.05.2007, 14:21
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию [c/c++] Новичкам: задаем вопросы

В этой специальной теме новички могут задавать "элементарные" вопросы по синтаксису и прочим начинаниям в языке.

Последний раз редактировалось _Great_; 26.05.2007 в 14:26..
 
Ответить с цитированием

  #2  
Старый 27.05.2007, 17:58
Аватар для N1K
N1K
Новичок
Регистрация: 11.02.2007
Сообщений: 10
Провел на форуме:
43734

Репутация: 4
По умолчанию

Как заставить программу читая файл скрадывакать каждую строку в определенную переменную? (1 строка = 1 переменная)
 
Ответить с цитированием

  #3  
Старый 27.05.2007, 18:02
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от N1K  
Как заставить программу читая файл скрадывакать каждую строку в определенную переменную? (1 строка = 1 переменная)
fgets() читает строчку из файла, если используется RTL у тебя
 
Ответить с цитированием

  #4  
Старый 27.05.2007, 18:16
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

27.05.2007 18:14:51, KEZ
KEZ:

Код:
#include <stdio.h>

int main(int argc, char* argv[])
{
	char buf[256];
	FILE *f = fopen( "C:\\1.txt", "r" );
	while (fgets( buf, 255, f ))
		strncpy( string, buf, 255 );
	fclose( f );

	return 0;
}
где string - очередная переменная в которую положится очередная строка

27.05.2007 18:15:00, KEZ
запости *** я забанен(

Последний раз редактировалось _Great_; 27.05.2007 в 18:33..
 
Ответить с цитированием

  #5  
Старый 27.05.2007, 18:31
Аватар для ultimatum
ultimatum
Участник форума
Регистрация: 28.04.2007
Сообщений: 239
Провел на форуме:
2140476

Репутация: 161
Отправить сообщение для ultimatum с помощью ICQ
По умолчанию

Как программно с помощью с++ обращаться по протоколу http. Как к простым файлам?
пример:
FILE *f = fopen( "http://sait.com", "r" );
может вопрос мой некоректен , но я думаю поймут )))
 
Ответить с цитированием

  #6  
Старый 27.05.2007, 18:34
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от ultimatum  
Как программно с помощью с++ обращаться по протоколу http. Как к простым файлам?
пример:
FILE *f = fopen( "http://sait.com", "r" );
может вопрос мой некоректен , но я думаю поймут )))
нет, либо UrlDownloadToFile, либо открыть сокет вручную

от кеза:

27.05.2007 18:43:17, KEZ

#include <stdio.h>
#include <winsock2.h> // хедер с описанием wsa ф-ий

// для ms vc++6.0 и др - подключаем lib'у с импортами wsa ф-ий
#pragma comment( lib, "wsock32.lib" )

int main(int argc, char* argv[])
{
char request[1024*5]; // буффер под запрос
char response[1024]; // буффер под ответ
sockaddr_in s_a;
WSADATA wd; // структура WSADATA

WSAStartup( MAKEWORD( 2, 2 ), &wd ); // инициализируем wsa

SOCKET s = socket( AF_INET, SOCK_STREAM, 0 ); // создаем сокет
if (s == INVALID_SOCKET) return 255; // если ошибка - выход

s_a.sin_addr.s_addr = inet_addr( "89.108.80.80" ); // айпи сервера, в данном случае - античат.ру
s_a.sin_port = htons( 80 ); // порт сервера
s_a.sin_family = AF_INET;

if (connect( s, (struct sockaddr*)&s_a, sizeof( s_a ) ) == SOCKET_ERROR) return 255; // SOCKET_ERROR - невозможно подключится к сереверу

char url[] = "/"; // страница
char host[] = "antichat.ru"; // хост
// формируем запрос
sprintf( request, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: Close\r\n\r\n", url, host );

send( s, request, strlen( request ), 0 ); // послать запрос
recv( s, response, 1023, 0 ); // максимум получить 1023 байта

printf( "%s\r\n", response ); // вывести ответ на экран

closesocket( s ); // закрываем сокет
WSACleanup(); // деинициализируем wsa

return 0;
}

27.05.2007 18:45:56, KEZ
отпиши от меня кроме кода вот что

27.05.2007 18:46:28, KEZ
"далее обрезай шапку ответа сервера (HTTP/1.1 200 OK и т.п.), все оставшееся - будет то, что вернул сервер по запрошеному адресу, например /1.txt. Другие варианты с winapi - InternetReadFile(), UrlDownloadToFile() см.
msdn..."

27.05.2007 18:45:09, KEZ
"альт. вариант - InternetReadFile()"

27.05.2007 18:45:12, KEZ
отпиши

Последний раз редактировалось _Great_; 27.05.2007 в 18:52..
 
Ответить с цитированием

  #7  
Старый 27.05.2007, 19:00
Аватар для ultimatum
ultimatum
Участник форума
Регистрация: 28.04.2007
Сообщений: 239
Провел на форуме:
2140476

Репутация: 161
Отправить сообщение для ultimatum с помощью ICQ
По умолчанию

спасибо KEZ и _Great_ ))) дальше я сам поисом
 
Ответить с цитированием

  #8  
Старый 27.05.2007, 19:15
Аватар для N1K
N1K
Новичок
Регистрация: 11.02.2007
Сообщений: 10
Провел на форуме:
43734

Репутация: 4
По умолчанию

Цитата:
Сообщение от _Great_  
27.05.2007 18:14:51, KEZ
KEZ:

Код:
#include <stdio.h>

int main(int argc, char* argv[])
{
	char buf[256];
	FILE *f = fopen( "C:\\1.txt", "r" );
	while (fgets( buf, 255, f ))
		strncpy( string, buf, 255 );
	fclose( f );

	return 0;
}
где string - очередная переменная в которую положится очередная строка

27.05.2007 18:15:00, KEZ
запости *** я забанен(
Короче, смысл проги в том, что... а, ладно щас исходник кину:


Код:
#include <stdio.h>
#include <stdafx.h>
#include <iostream>
#include <string.h>
using namespace std;
 
class massive_s
{
public:
	massive_s (char*, int, float);
    void show_data (void);
	
/* void fetch (int); */
private:
	char name[64];
	int marck;
	float m_marck;
};
massive_s::massive_s (char *name, int marck, float m_marck)
{
	strcpy (massive_s::name,name);
	massive_s::marck = marck;
	massive_s::m_marck = m_marck; 
    if (m_marck > 3.5)
		strcat (massive_s::name," IIEPEBEDEH");
	else
		strcat (massive_s::name," HE IIEPEBEDEH");
}
void massive_s::show_data (void)
{
	cout <<" Name: "<< name << endl;
	cout <<" Ocenka: "<< marck << endl;
	cout <<" Cpednjaja ocenka: " << m_marck << endl;
}





int main (void)
{

/* здесь нужен код, который считывал бы из вайла построчно переменные, и формировал запрос в конструктор типа:
massive_s w1(string1, int1, float1); где стринг, интеджер и флоат  - вытащенные из файла переменные (стринг - первая строка, интеджер - 2 и флоат - 3, причем в файле продобных строк 100 (т.е. они чередуюццо:
Вася Пупкин
1
3.3
Миша Ипачевский-Распиндосов
4
4.5
Саша шнуровской
5
3.5
)
*/
}
 
Ответить с цитированием

  #9  
Старый 30.05.2007, 17:37
Аватар для Jes
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

Вопрос: idHTTPServer ... сохранение удаленного файла на винте(через браузер)...
TFileStream *fs=new TFileStream(MyFile,fmOpenRead);
try
{
ResponseInfo->ResponseNo=200;
ResponseInfo->ContentLength= fs->Size;
ResponseInfo->ContentStream=fs;
ResponseInfo->Headers->Add("Content-Disposition: attachment; filename=MyFile.exe\r\n");
...
Сохраняет файл , но в начале файла записывает инфо с запроса (Server: Indy, Content-Length и др) , что в свою очредь убивает его работоспособность...
как сделать ,чтоб файл нормально записался???
 
Ответить с цитированием

  #10  
Старый 30.05.2007, 23:12
Аватар для Jes
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

у меня немного по сложнее трабл , я отсылаю файл по запросу, а не принимаю ...
Принимает же обычный браузер...

считываю же файл для отправки сразу потоком:

TFileStream *fs=new TFileStream(MyFile,fmOpenRead);
ResponseInfo->ContentStream=fs; //где ResponseInfo - ответ на запрос...

забавно, но если убрать строчку :
ResponseInfo->Headers->Add("Content-Disposition: attachment; filename=MyFile.exe\r\n");
, то файл сохранится правильно, но под кривым именем и без расширения...
 
Ответить с цитированием
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



TEST QR: []
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ