powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / как расширить char buffer []
21 сообщений из 21, страница 1 из 1
как расширить char buffer []
    #38882461
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем здрасьте.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	char header [] = "заголовок";

	unsigned short int msg_len1;
	unsigned short int msg_len2;


	char buffer [] = "длина сообщения";
// надо добавить длину этого самого коротенького сообщения, и пробельчик перед длиной
// то есть в результате должно быть следующее:	"длина сообщения 15"

	msg_len1 = sizeof(buffer);
	msg_len2 = msg_len1 + 1 + sizeof(msg_len1);

   	char buffer2 = new char [msg_len2];	// "длина сообщения 15"

	for (int j = 0; j < msg_len1; j++) {
		buffer2[j] = buffer[j];
	}

	// ВОТ ТУТ ПОДСКАЖИТЕ КАК ДОБАВИТЬ К сообщению ПРОБЕЛ И ЦИФРЫ (т.е. длину сообщения)
	...

    MessageBox(NULL, buffer2, header, MB_OK);
    return 0;
 }
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882475
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882476
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S0ME0NE,
RTFM strcpy(), strcat()
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882524
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, понятно, но мне бы хотелось (для общего развития), как добавить не используя sprintf
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882550
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
меня интересует именно эта строка
Код: plaintext
1.
   	char buffer2 = new char [msg_len2];	// "длина сообщения 15"

потому что я не знаю какой будет длина buffer2 в результате
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882569
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S0ME0NEя не знаю какой будет длина buffer2 в результате
Длина будет msg_len2
S0ME0NE
Код: plaintext
1.
	msg_len2 = msg_len1 + 1 + sizeof(msg_len1);


sizeof(msg_len1) вернет сколько байт памяти занимает переменная msg_len1 (скорее всего 4). Если я правильно понимаю - тебе надо количество десятичных знаков значения msg_len1.
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882581
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Число 15 переводишь в строку. Длину строки узнаешь с помощью strlen().
msg_len2 = msg_len1 + 1 + strlen( "строка числа 15" );
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882585
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TДлина будет msg_len2
спасибо что отозвались

я имел введу что
Код: plaintext
1.
char buffer2 = new char [msg_len2];

эта строка кода не компилируется
то есть надо знать заранее (до компиляции) длину буфера

можно ли как-то без вектора и без sprintf сделать это? ведь вектор как-то сделали!
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882589
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S0ME0NEDima TДлина будет msg_len2
спасибо что отозвались

я имел введу что
Код: plaintext
1.
char buffer2 = new char [msg_len2];

эта строка кода не компилируется
то есть надо знать заранее (до компиляции) длину буфера

можно ли как-то без вектора и без sprintf сделать это? ведь вектор как-то сделали!char *buffer2 = new char [msg_len2];
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882597
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S0ME0NE эта строка кода не компилируется
то есть надо знать заранее (до компиляции) длину буфера
Прямо так и написано в сообщении об ошибке? Может вместо фантазирования попытаться понять на что ругается компилятор?

В данном случае buffer2 это указатель:
Код: plaintext
1.
char *buffer2 = new char [msg_len2]
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882623
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Класс!!!
Заработало.

само сообщение я добавил в buffer2
Код: plaintext
1.
2.
3.
	for (int j = 0; j < msg_len1; j++) {
		buffer2[j] = buffer[j];
	}


а как добавить в buffer2 цифры ( то есть само значение числа msg_len1)
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882643
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S0ME0NEКласс!!!
Заработало.

само сообщение я добавил в buffer2
Код: plaintext
1.
2.
3.
	for (int j = 0; j < msg_len1; j++) {
		buffer2[j] = buffer[j];
	}


а как добавить в buffer2 цифры ( то есть само значение числа msg_len1)
я имею ввиду , не пользуясь sprintf
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882645
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S0ME0NEа как добавить в *buffer2* цифры ( то есть само значение числа msg_len1)

sprintf()
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882653
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S0ME0NEа как добавить в buffer2 цифры ( то есть само значение числа msg_len1)
S0ME0NEя имею ввиду , не пользуясь sprintf
По одной. Вычисляешь старший разряд в переменную r
Код: plaintext
1.
buffer2[j] = r + '0';


затем следующий разряд и т.д.
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38882664
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял. Благодарю Вас.
Всем большое спасибо.
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38884495
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зря вы так. Он ведь и память за собой не почистит. Или в цикле утечек наделает... И за границы диапазона как дать выйдет. Конец строки где надо не поставит ...
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38884501
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Плюсы" не прощают ошибок.
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38884510
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton"Плюсы" не прощают ошибок.

Вот как раз плюсы все прощают, но только тем кто их любит ))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
#include <windows.h>
#include <sstream>
#include <string>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	std::string header = "заголовок";

	unsigned short int msg_len;


	std::ostringstream buffer;
	buffer << "длина сообщения";
	msg_len = buffer.str().size();
	buffer << " " << msg_len;
	
	std::string message = buffer.str();
	
    	MessageBox(NULL, message.c_str(), header.c_str(), MB_OK);
    	return 0;
 }
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38884515
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyMessageBox(NULL, message.c_str()
А не сработает ли тут прямо buffer.str().c_str() без промежуточной переменной?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38884523
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAnatoly MoskovskyMessageBox(NULL, message.c_str()
А не сработает ли тут прямо buffer.str().c_str() без промежуточной переменной?..
Сработает.
Я написал так как написал специально для вопрошавшего. Чтобы понятнее было что там происходит ))
...
Рейтинг: 0 / 0
как расширить char buffer []
    #38884903
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovsky
Благодарю за хрестоматийный пример.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / как расширить char buffer []
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]