Я начинающий, подскажите как...(Все вопросы начинающих - постить только здесь!!!)
action="http://..." method=GET>
</form>
GET-данные формы присоединятся к запросу ввиде "имя & значение"
есть также POST:) (точно также как и GET)
Microsoft Visual C++ 6.0:)
action="http://..." method=GET>
</form>
GET-данные формы присоединятся к запросу ввиде "имя & значение"
есть также POST:) (точно также как и GET)
Я про c#, а не html - нужно именно средствами c# выполнить HTTP-запрос и сохранить где-нибудь ответ(в переменной, например). Хотя может я c# плохо знаю, но можно тогда пример кода именно на c# в виде функции привести? (предположим, что текст запроса уже создан и хранится в переменной httpStr)
1. В консоли вводится строка, содержащая пробелы. Для того, чтобы получить всю ее пользуюсь ф-ей getline. Все хорошо, в переменную все сохранятеся, но как-то непонятно происходит это дело. Поясняю. Напечатал я строку, нажал "энтэр" (а брэкпойнт поставил на следещую строку, после getline(cin, variable);) а в дебагер программа не вывалилась, только после повторного нажатия на клавишу. Мягко говоря, это не то, что мне надо. Как бы избавиться от такого досадного поведения ф-ии?
2. Перевод числа типа float (и иже с ним) в строку.
Разобрался.
Особенно прикольно - вот это вот - "изучать неизведанное". Изучите в начале "изведанное". :)
Кроме того, тема обсуждалась на форуме не раз. В последний раз например здесь.
Перевод числа типа float (и иже с ним) в строку
Сам своево времени долго искал ответ на етот вопрос. Он выглядит примерно так:
где f-число типу float, int ndig - число знаков после комы,s - строка, в котурую надо ето записать
Ну если не ошибаюсь сам по себе билдер (в его 2006-7 реинкарнациях) поддерживает кроссплатформенное программирование. Ну а так, обратите внимание на Qt.
Покажите фрагмент кода в котором вы получаете данное сообщение. Кроме того - посмотрите эту тему: http://forum.codenet.ru/showthread.php?t=45415 - возможно у вас схожая проблема.
gets(etalon);
strcpy(basepath, etalon ); strcat(basepath, "*");
printf ("\nПуть = %s\n", basepath);
hFind = FindFirstFile(basepath, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("\nInvalid File Handle. GetLastError reports %d\n", GetLastError ());
}
функцией gets ввожу путь к директории;
gets(etalon);
strcpy(basepath, etalon ); strcat(basepath, "*");
printf ("\nПуть = %s\n", basepath);
hFind = FindFirstFile(basepath, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("\nInvalid File Handle. GetLastError reports %d\n", GetLastError ());
}
функцией gets ввожу путь к директории;
Используйте пожалуйста средства форматирования кода.
Вы прочли ссылку, которую я вам дал?
int main()
{
double a=0;
a=function();
return 0;
}
float function ()
{
float x=12.54;
return x;
}
Почему а получает значение 12.539999961853 а не 12.54?
автором заданий.
Просьба к вам:
1) Проверить на ошибки данный код
2) Если это действительно связано с версией компилятора выбранной, то посоветовать версию альтернативу. Сразу хотел сказать, что не желаю писать на компиляторах семейства .NET т.к. считаю тягостным понятие Framework, который нужно "таскать" везде. Если я что-то неправильно понимаю, то просьба доходчиво пояснить.
Заранее благодарен!
using namespace std;
class three_d {
int x,y,z;
public:
three_d(int i,int j,int k){x=i;y=j;z=k;}
three_d(){x=y=z=0;}
void get(int &i,int &j,int &k){i=x;j=y;k=z;}
friend three_d operator+(three_d&, int);
friend three_d operator+(int,three_d&);
};
three_d operator+(three_d &obj, int i)
{
three_d tmp;
tmp.x=obj.x+i;
tmp.y=obj.y+i;
tmp.z=obj.z+i;
return tmp;
}
three_d operator+(int i, three_d &obj)
{
three_d tmp;
tmp.x=obj.x+i;
tmp.y=obj.y+i;
tmp.z=obj.z+i;
return tmp;
}
void main()
{}
таким образом:
или по отдельности, по-разному варируя и до конца не понимая что делаю т.к. полазив в настройках обнаружил отключенными все виды оптимизации.
Хоть и такой вид конструкции как я понимаю (на данный момент) решает лишь проблему перегрузки оператора в случае, если будет записано, например: "int + obj" что в свою очередь как-то не по-нормальному и может быть написано наоборот, что сразу решит проблему, но все же хотелось бы решить вопрос этот т.к. возможны снова такого рода проблемы уже в других ситуациях.
Поправьте что я сделал не так, так сказать разжуйте и положите в рот :)
Заранее спасибо.
Одной библиотеки windows.h тебе будет просто мало. Тебе нужно стянуть инсталляху SDK (Software Development Kit). В ней находятся все необходимые библиотеки. Удачи.
Необходимо набить двумерный массив строк типа
массив[строка][столбец] = "значение".
Я пробовал так:
char * names_array[<номер дома>][<номер квартиры>] = <Имя жильца>;
но не сработало
при присвоении значения элементу массива[строка][столбец+1], перезаписывается и массива[строка][столбец]
Как надо?
Спасибо
for (int i=0;i<2;++i)
{
for (int j=0;j<2;++j)
{
matrix[j] = new char(MAX_LENGTH);
}
}
strcpy(matrix[0][0],"hello");
strcpy(matrix[0][1],"world");
strcpy(matrix[1][0],"hi");
strcpy(matrix[1][1],"emma");
error: ‘new’ undeclared (first use in this function)
error: ‘new’ undeclared (first use in this function)
Вполне логично, если у тебя Си. New появился только в Си++. Поэтому используй malloc.
malloc принимает в качестве аргумента размер выделяемой области в байтах; возвращает нетипизированный указатель (void*) на область памяти заявленного размера или NULL в случае, если выделить память невозможно. Содержимое выделяемой области памяти не определено.
void * malloc ( size_t size );
void * calloc ( size_t num, size_t size );
Это должно работать
void main()
{
char *matrix[2][2];
for (int i=0;i<2;++i)
{
for (int j=0;j<2;++j)
{
matrix[j] = (char*)malloc(MAX_LENGTH);
}
}
strcpy(matrix[0][0],"hello");
strcpy(matrix[0][1],"world");
strcpy(matrix[1][0],"hi");
strcpy(matrix[1][1],"emma");
for (int i=0;i<2;++i)
{
for (int j=0;j<2;++j)
{
printf("%s \n",matrix[j]);
free(matrix[j]);
}
}
}
Во первых - к общим вопросам С/С++ это отнести ну никак нельзя. Во вторых - используйте поиск - тема печати рассматривалась многократно.
Странно. Уж в чем меня трудно заподозрить - так это в том что я привожу код на делфи:
http://forum.codenet.ru/showthread.php?t=42675&highlight=%EF%E5%F7%E0%F2%FC
или вот еще - тоже на делфи мало похожее:
http://forum.codenet.ru/showthread.php?t=12074&highlight=%EF%E5%F7%E0%F2%FC
Название темы - ничего не напоминает? В следующий раз просто получите нарушение за неиспользование поиска сразу в двойном размере.
Как откомпилировать сторонние библиотеки, имея заголовочные и исходные файлы. Т.е получить библиотечные файлы. Использую компилятор BCC32.exe (версия 5.6.0.0)
Я б попробовал но понятия неимею как это сделать :confused: , в описание CreateFile и ReadFile вроде ниче нет такого :confused:
Ну открыл я его с mode "rb" , а дальше что ?
Всеравно cout и printf выводят только его тесктовое начало,да и остальные ф-ции предназначенные для работы со строками дальше тех первых байт где текст ниче невидят.
У класса TCanvas есть метод Draw, с помощью которого можно рисовать изображения. На Delphi это будет так (у меня нет C++ Builder, но там аналогично):
MyImage.Canvas.Draw(X, Y, JpegImage);
Здесь JpegImage - это JPEG-рисунок класса TJpegImage, а MyImage - элемент TImage, на который выводится рисунок. Рисунок выводится, начиная с пиксела (X,Y). После вывода картинки можно продолжить рисование, включая вывод других картинок.
2_nic:
Если файл НЕ текстовой, то и работать с ним нужно только в двоичном режиме! И никак не иначе. При открытии файла для чтения указывается режим "rb", а для записи "wb":
Для чтения двоичных данных используется функция fread:
size_t fread(void *ptr, size_t size, size_t n, FILE *fp);
Функция читает (size*n) байтов из файла fp в буфер, задаваемый адресом ptr. Обычно n=1, а size равен размеру блока данных.
Возвращаемое значание - количество прочитанных байтов. Если оно равно size*n, то данные прочитаны успешно, а при ошибке чтения результат будет меньше, чем size*n. Пример чтения структуры:
if (count==sizeof(mystruct)) error=0;
else error=1;
Аналогичная функция есть и для записи данных:
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *fp);
Функция записывает данные из буфера ptr в файл fp, параметры и возвращаемое значение те же, что и у функции fread. Пример записи структуры:
if (count==sizeof(mystruct)) error=0;
else error=1;
Обе функции объявлены в stdio.h.
В Windows API используются только двоичные файлы. Открывается файл с помощью функции CreateFile (описние см. в MSDN). Для чтения данных используется функция ReadFile:
ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped);
Функция читает nNumberOfBytesToRead байтов из файла hFile в буфер,
задаваемый адресом lpBuffer. В переменную типа DWORD, задаваемую адресом lpNumberOfBytesRead, записывается количество прочитанных байтов. Последний параметр обычно равен NULL, подробнее см. MSDN. Пример чтения структуры:
if (count==sizeof(mystruct)) error=0;
else error=1;
Аналогичная функция для записи данных:
WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
Функция записывает данные из буфера в файл. Пример записи структуры:
if (count==sizeof(mystruct)) error=0;
else error=1;
В C++ есть такое ключевое слово - template для написания шаблонов. Объясните, хотя бы вкратце, что это за шаблоны такие, для чего они нужны и как их использовать? Ни в одном учебнике по C++ ничего не говорится про шаблоны. Нет их и в книге Б. Страуструпа. Видимо, они появились в C++ недавно?