Другое С/С++ Вопрос - Ответ

Jack_Savage

Участник
150
17
Можно более нубским языком? :D
И ещё.
C++:
SAMPFUNCS *SF = new SAMPFUNCS();
stFontInfo *pFont;
unsigned short scrx = GetSystemMetrics(SM_CXSCREEN);
char sstring[1];
char qwe[1];
short int PTC=scrx;
char* ppts = new char(sstring[scrx]);
char* ptqwe = new char(qwe[scrx]);
unsigned __int16 nocis;
unsigned char red, green, blue;
char* PTCs;

bool CALLBACK Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride,
   CONST RGNDATA *pDirtyRegion)
{
   if (SUCCEEDED(SF->getRender()->BeginRender()))
   {
     memset(ptqwe, 0, strlen(ptqwe));
     memset(ppts, 0, strlen(ppts));
     PTC -= 1;
     PTCs = ppts + PTC;
     strcat(PTCs, "Число символов в строке: ");
     nocis = _scprintf(PTCs);
     itoa(nocis, ptqwe, 10);
     strcat(PTCs, ptqwe);
     //SF->getSAMP()->getChat()->AddChatMessage(555555, "%s", ppts);
     red = rand();
     green = rand();
     blue = rand();
     pFont->Print(PTCs, D3DCOLOR_ARGB(255, red,green,blue), 0, 500, false);
     SF->getRender()->EndRender();
   };

   return true;
};
с данным кодом через четверть минуты игры происходит нечто странное, что удалось разглядеть, лишь записав - после этого игра крашит.
Примечательно, что я не делал так, чтоб строка вообще клеилась, не то что уж заполняла себя своими копиями
Как такое происходит?
что оно должно сделать?
 

Gabriel__

Известный
Проверенный
411
185
Как считать вводимые символы с консоли но так чтобы они в ней не отобразились. Ввёл в консоль слово hello оно считалось в переменную и отобразилось в консоли. Как убрать этот побочный эффект ?


C++:
int main()
{
    while(true)
    {
        std::string str;
        std::getline(std::cin, str);
    }
    return 0;
}
 
Последнее редактирование:

iAmerican

Известный
Друг
611
261
Как осуществить поиск подстроки в строке , без учета регистра?
C++:
if (_stricmp("XYZ -2-2-2", "xYZ") != NULL) {
Log("Нашлось");
    }
Пробовал вот так , но не работает.
 

Dark_Knight

Me, me and me.
Друг
4,080
2,112
Как осуществить поиск подстроки в строке , без учета регистра?
C++:
if (_stricmp("XYZ -2-2-2", "xYZ") != NULL) {
Log("Нашлось");
    }
Пробовал вот так , но не работает.
Когда вы уже научитесь юзать std::string? -_-
Код:
#include <windows.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <cctype>
using namespace std;

void main() {
    setlocale(LC_ALL, "Russian");
    std::string text = "Вася Пупкин", str = "ВАСЯ ПУПКИН";
    (text == str) ? cout << "true\n" : cout << "false\n";
    std::transform(text.begin(), text.end(), text.begin(), tolower);
    std::transform(str.begin(), str.end(), str.begin(), tolower);
    (text == str) ? cout << "true\n" : cout << "false\n";
    system("pause");
}
 
  • Нравится
Реакции: iAmerican

2Shae

Известный
149
8
Нубо-вопрос подъехал. Что лучше использовать: string или char? А то наткнулся на статейку о том, что char жрёт меньше памяти и быстрее "обрабатывается".
 

Dark_Knight

Me, me and me.
Друг
4,080
2,112
Стринг точно удобней, да и выиграешь ты там мало, так что смысла заморачиватся нет.
 

ishi

Известный
493
110
Предположим, что в d3dx есть такая структура:
C++:
typedef struct D3DXVECTOR3 {
FLOAT x;
FLOAT y;
FLOAT z;
} D3DXVECTOR3, *LPD3DXVECTOR3;
И я попытался её заполнить:
C++:
struct D3DXVECTOR { FLOAT x = Matrx, y = Matry, z = Matrz+10; };
Но при попытке её объявить, указав D3DXVECTOR мне пишет что "использование имени типа не допускается", а если я пытаюсь между таблицей и D3DXVECTOR вписать название для таблицы, выдаёт ошибку, типа быть его там не должно.
Вопрос: каким образом заполнять данную структуру, и указывать её в качестве блока данных? (т.к если не по d3xvector, у меня и идей нет как указывать)
 

Jack_Savage

Участник
150
17
Как можно создавать переменную во время работы программы ?
Типу написал в консоль create и она создалась.
При этом чтобы потом как то обратится можно было и чтобы их можно было создавать пока оператива не кончится
 

BlackKnigga

Известный
BH Team
922
449
Как можно создавать переменную во время работы программы ?
Типу написал в консоль create и она создалась.
При этом чтобы потом как то обратится можно было и чтобы их можно было создавать пока оператива не кончится
new
 

Jack_Savage

Участник
150
17
И чем это поможет ? Мне надо создавать переменную во время выполнения. Их может быть хоть 1000.
Пользователь сам ее создает командой.
По сути мне надо чтобы программа исполняла код из файла и создавала переменную когда надо
 

ishi

Известный
493
110
Структура буллет синк, которую кидал бэтмэн:
Дело в том, что входящий BULLET_SYNC имеет измененую структуру
Слегка. Там нужно читать первые 2 байта читать ид игрока. Дальше уже все тоже самое.
по ней я пытаюсь считать, собсна, структуру:
C++:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
   if (params->packetId == 206)
   {
     //byte pID;
     uint8_t  byteType;
     byte issuerID;
     uint16_t  sTargetID;
     float  fOrigin[3];
     float  fTarget[3];
     float  fCenter[3];
     uint8_t  byteWeaponID;
     //params->bitStream->Read(pID);
     int btsused = params->bitStream->GetNumberOfBytesUsed();
     fout << "bytes: " << btsused<<"\n";
     params->bitStream->Read(byteType);
     params->bitStream->Read(issuerID);
     params->bitStream->Read(sTargetID);
     params->bitStream->Read(fOrigin);
     params->bitStream->Read(fTarget);
     params->bitStream->Read(fCenter);
     params->bitStream->Read(byteWeaponID);
     fout << "\n" <<"issuer: "<< issuerID << "___" << sTargetID << "___" << byteWeaponID << "\n" <<"from: " << fOrigin[1] << "___" << fOrigin[2] << "___" << fOrigin[3] << "\n"<<"to: " << fTarget[1] << "___" << fTarget[2] << "___" << fTarget[3] << "\n" <<"center: "<< fCenter[1] << "___" <<  fCenter[2] << "___" << fCenter[3] << "\n";
   }
   return true;
};
выдаёт фырню:

issuer: ___256___Њ
from: -8.11872e-025___4.60597e+009___6.28182e+028
to: -1.039e-020___4.31363e-014___0
center: -3.7107e+019___-5.91414e


вопрос: чем заболели координаты, что в них эти плюсы появились, и как их правильно читать-то?