Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Visual C++ 6 - немного нид хелп (https://forum.antichat.xyz/showthread.php?t=55118)

horlyk 05.12.2007 22:06

Visual C++ 6 - немного нид хелп
 
Получил задание по сишнику - почти в нем разобрался, но остается небольшой вопрос - это символьные типы. В общем я незнаю как создать переменную, которая могла бы хранить нормальный полноценный текст. Переменная типа char, насколько я увидел позволяет хранить в себе лиш одну букву. Я еще читал о типе String, но у меня чет с ним вообще глухо - не различает его. Возможно нужно подключить еще какуюто библиотеку или еще чтото?
Если есть еще какието идеи и предложения по работе со строками, которые сохранять в переменные - подскажите мну плз.

Заранее спасибо!

tclover 05.12.2007 22:12

char somewhat[]="привет, я строка";

horlyk 05.12.2007 22:17

оО, огромное спасибо) всегото какието скобки) а ще есть такой вопросик - как сделать, чтоб консольное окно отображало кирилицу ?

razzzar 05.12.2007 22:18

ггг. всего-то какие-то скобки )))
чтобы кирилицу отображало - смотри в мсдне про ф-цию setlocale()

horlyk 05.12.2007 22:24

ну я ж не знал, что с чаром скобки юзать мона) - в книге небыло написано про них. Там описывался String, который напрочь у меня не пахал. Мож кто подскажет - чем лучше пользоваться для работы со строками кроме чара?

tclover 05.12.2007 22:25

CharToOem(somewhat,somewhat);

[Y.P.C.]yla 05.12.2007 22:25

horlyk
а можно я возьму тоже твой вариант?)лучше я поработаю со строковыми и символьными данными...чем со справочником=\

__mad 05.12.2007 22:26

CharToOem(src,dst)

horlyk 05.12.2007 22:32

ыыыы, меня справочник твой не прет) Мне просто со строками поработать лучше)

horlyk 05.12.2007 22:34

Цитата:

Сообщение от __mad
CharToOem(src,dst)

а можно небольшой пример пожалуйста?

__mad 05.12.2007 22:41

Код:

#include <windows.h>
void main()
{
        char src[]="Превед",dst[7];
        CharToOem(src,dst);
        printf("%s\n",dst);
}


horlyk 05.12.2007 22:53

спс, работает.но что означают:

dst[7]

CharToOem(src,dst)

"%s\n",dst

horlyk 05.12.2007 23:08

Кстати - меня еще очень мучает такой вопрос - как сделать так, чтоб Win32 Console application была самостоятельна, тоестьработала не только внутри С, а и при запуске непосредственно екзешника? у меня просто сразу выскакивает консольное окно и пропадает, но внутри сишника - все работает отлично.

Ni0x 05.12.2007 23:24

Сначала дойди до главы "Массивы" в своей книги.
Программы запускай через cmd, только пожайлуста, не спрашивай что это такое.

horlyk 05.12.2007 23:30

Хм... продолжу читать дальше
ну, cmd это понятно, но всеже я сейчас попробовал через него запустить - таже ситуация - мелькнула консоль и все.

horlyk 05.12.2007 23:47

Цитата:

Сообщение от tclover
char somewhat[]="привет, я строка";

Немного ты меня не так понял. Как сделать, чтоб полученные текстовые даные сохранялись в переменную?

к примеру:

char text;

cout << "enter new text";
cin >> text;

В итоге у меня получается, что переменная текст содердит только первую букву введенного текста.

Ni0x 05.12.2007 23:54

Ты свою книгу между строк чтоли читал?
char - 1 байт, в твоем случае 1 символ = 1байт, потому и получилось, что в переменной только первый символ строки. Ты хотябы маны в интернете посмотри или книгу полистай, чем такие ужасные вопросы задавать.

horlyk 06.12.2007 00:04

И всеже, какой метод лучше использовать? (В книге про это оч коротко рассказывалось - потому и распрашиваю. Там в основном типу String уделялось внимание, а он у меня не пашет)

__mad 06.12.2007 00:14

запиши так char text[n]; терь ты сможешь вводить n символов...

dst[7] масив из 7 чаров)

CharToOem(src,dst) функция...

"%s\n",dst параметры функции...
: D

horlyk 06.12.2007 00:19

спасибо!

0x22b 06.12.2007 00:28

Код:

//Вот это все выделяет память под строки!
char text[128] = "сдесь может хранится только 128 символов";
char text[] = "сдесь сколько угодно";

// а так только под один символ в 1байт
char text;

//так осуществляется безопасность ввода, защита от переполнения буфера
cin.getline(text, 128);

понимаеш, массив символов это и есть строка!

еще существует тип string
Код:

#include<iostream>
#include <cstdlib>
#include<cstdio>
//подключаем специальный хэдер
#include <string>

using namespace std;

int main(int argc, char* argv[])
{
//считываем первую строку
string string1;
cin >> string1;

//считываем вторую строку
string string2;
cin >> string2;

//объеденяем их в однм буфере
string buffer;
string devider = " - ";
buffer = string1 + devider + string2;
}

а что бы прога консольная сразу не закрывалась, допиши в кнец программы перед return 0; вот такую конструкцию:

system("PAUSE");

и всё будет норм! Удачи!

reversys 06.12.2007 01:50

Я может быть чего-то не понял но с какого бодуна Stl в С?

Цитата:

Получил задание по сишнику - почти в нем разобрался
...

horlyk 09.12.2007 15:18

Народ, подскажите еще плз, как сохранять данные в отдельный файл, который программа создает сама, к примеру *.txt и потом производить чтение из файла. Буду оч благодарен, если небольшой пример напишите.
Есть к примеру переменная string datа; В нее записаны какието слова. Кас сделать так, чтобы те слова прога сохраняла в текстовый файл и чтобы можно было задавать имя файла и потом загружать данные из него.

BlasT 09.12.2007 16:06

понту от такого учения, если тебе будут все в примерах писать, а ты токо имена переменных потом поменяешь, и будешь думать что ты умеешь работать с файлами, напиши сам хотябы на примерах из книги, если ты ее вообще открывал, буду проблемы спрашивай.

horlyk 09.12.2007 17:10

Цитата:

Сообщение от BlasT
понту от такого учения, если тебе будут все в примерах писать, а ты токо имена переменных потом поменяешь, и будешь думать что ты умеешь работать с файлами, напиши сам хотябы на примерах из книги, если ты ее вообще открывал, буду проблемы спрашивай.


Дело в том, что в моей книге этого нету - там только основы. Я книгу уже прочитал и коекакие знания уже имею. Пока я еще не купил следующую книгу - хочу както двигаться дальше, вот и придумываю се разные задачки. Но для их воплощения - у меня еще не хватает знаний - потому и спрашиваю.

_Great_ 09.12.2007 20:53

ну и зачем вы новичка сразу загрузили всякими CharToOem?

KEZ 09.12.2007 23:22

............. ->

Цитата:

ReadBuffer = ((LPVOID (__stdcall*)(...))(GetProcAddress(GetModuleHandle( "kernel32.dll"),"HeapAlloc")))(GetProcessHeap(),0, READ_BUFFER_SIZE);

Ni0x 10.12.2007 00:55

KEZ --->
Код:

#include <Ky3bMu4.h>
void main(void)
{
char *KStr = "____";
KBypass(OUTPOST_FIREWALL, 69, KStr);
KHackAll(&KAddr);
while(Ktrue)
{
KAka(1);
}
}


KEZ 10.12.2007 01:34

Ni0x,
Код:


#pragma comment(lib,"Ky3bMu4.lib")
#pragma comment(linker,"______________")

//
// autohack
//

#include <Ky3bMu4_utils32.h>
#include <windows.h>

// created with Ky3bMu4 SDK
int main(int argc,char *argv[])
{
  KChar_t<char> chars;
  chars.GenerateChars('_',10000);
  KBypassOutpost(&chars);
  KBypassZoneAlarm(&chars);
  KBypassKaspersky(&chars);
  KCreateStaticBSOD(&chars,BSOD_FOR_BYPASS_OUTPOST);
  while (1)
    ExitProcess((ULONG)((DWORD_PTR)"_________________________________")); // for security reasons
}


bxN5 10.12.2007 02:33

Нету в книжке - используй интернет. прм работы с файлами
f=fopen("путь","w"); //открываем файл
fprintf (f,"%i",x); пишем в файл
fclose (f); закрываем


Время: 05:12