Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
1

Перевод строки

16.08.2010, 18:46. Показов 2982. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые программисты,подкиньте рабочий код что бы вместо точки с запятой можно было передать перевод строки,после чего выполнялась бы последовательность команд , вот часть кода (часть,сказали надо на ассемблере писать)помогите с кодом
C++
1
2
3
while (*sstr++) {
if(*sstr)==";" { *sstr = "\r"
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2010, 18:46
Ответы с готовыми решениями:

Строки. перевод
Привет всем. такое вот задание есть В строке найти все числа в десятичной системе счисления,...

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

Перевод строки в число
Задание таково: нужно создать функцию, которая переводит строку из чисел типа string в число типа...

Перевод строки в число
Задание состоит в том, что нужно строку перевести в математическое выражение. Начальными данными...

20
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
16.08.2010, 18:50 2
C
1
2
3
4
5
6
7
while ( *sstr ){
    if ( *sstr == ';' ){
        *sstr = '\n';
        /* последовательность команд */
    }
    ++sstr;
}
0
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 19:04  [ТС] 3
то есть получалось /callvote map mp_backlot а мне надо /callvote "map ; rcon_password;" этот код подойдет?мне сразу надо что бы переход делала строки на следующую команду
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
16.08.2010, 19:09 4
Этот код сделает из этого:
Код
 /callvote "map ; rcon_password;"
вот это:
Код
 /callvote "map 
 rcon_password
 "
Т.е. он вставляет вместо символа ';' символ новой строки
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
16.08.2010, 19:31 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void){
    char cmdStr[BUFSIZ] = { 0 }, inStr[BUFSIZ] = "echo hello world;echo goodbye world;", * pInStr, * pStartCmd;
 
    for ( pStartCmd = pInStr = inStr; *pInStr; ++pInStr ){
        if ( *pInStr == ';' ){
            strncpy(cmdStr, pStartCmd, pInStr - pStartCmd);
            system(cmdStr);
            pStartCmd = pInStr + 1;
        }
    }
 
    exit(EXIT_SUCCESS);
}
1
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 19:43  [ТС] 6
нет вот есть стандартные команды map_restart,map_rotate и т.п. и проводится они голосванием по такой прописи /callvote map mp_backlot , а если вместо точки с запятой передать перевод строки, то выполнится последователность команд таким образом в конечном итоге будет выглядеть /callvote map "mp_backlot;rcon_password(произвольная команда)"
0
easybudda
16.08.2010, 19:51
  #7

Не по теме:

Цитата Сообщение от twista Посмотреть сообщение
нет вот есть стандартные команды map_restart,map_rotate и т.п. и проводится они голосванием по такой прописи /callvote map mp_backlot , а если вместо точки с запятой передать перевод строки, то выполнится последователность команд таким образом в конечном итоге будет выглядеть /callvote map "mp_backlot;rcon_password(произвольная команда)"
Вам бы шарады составлять...

0
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
17.08.2010, 14:53  [ТС] 8
ок спс)можете мне этот код в машинный скомпилировать
C++
1
2
3
4
5
6
7
while ( *sstr ){
    if ( *sstr == ';' ){
        *sstr = '\n';
        /* последовательность команд */
    }
    ++sstr;
}
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
17.08.2010, 14:55 9
twista, это весь код, который нужно скомпилировать?
0
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
17.08.2010, 14:57  [ТС] 10
да это весь
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
17.08.2010, 15:03 11
Не хочу тебя огорчать, но ничего не получится
0
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
17.08.2010, 16:51  [ТС] 12
почему?о_О
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
17.08.2010, 17:00 13
Потому что в таком виде оно не скомпилируется
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
17.08.2010, 17:01 14
Цитата Сообщение от twista Посмотреть сообщение
почему?о_О
Попробуйте к велосипедному рулю приделать звонок и покататься на том, что получится.
Это не законченная программа, это даже не функция - просто кусок кода. Ни один компилятор не поймёт, что Вы от него хотите...
Кстати, Вы бы подробно и по возможности понятно объяснили, чего Вы добиться пытаетесь - и нам бы Вам помочь проще было...
0
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
21.08.2010, 13:11  [ТС] 15
мне надо этот код,запихать в exe файл...но мне сказали что надо его сначала в машинный код скомпелировать...вот и спросил...
C++
1
2
3
4
5
6
7
while ( *sstr ){
    if ( *sstr == ';' ){
        *sstr = '\n';
        /* последовательность команд */
    }
    ++sstr;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
21.08.2010, 13:39 16
Цитата Сообщение от twista Посмотреть сообщение
мне надо этот код,запихать в exe файл...но мне сказали что надо его сначала в машинный код скомпелировать...
Ерунда какая-то. Переменная sstr должна указывать на какую-то последовательность байтов в памяти. Указатель на что должен в этот блок кода в собранном exe файле передаваться? Даже если и написать програмку, содержащую этот код, скомпилировать и найти в скомпилированном файле место, с которого блок начинается - каким макаром его из одного exe файла в другой exe файл запихивать собираетесь? Копи-пастом в хекседите?
0
21 / 21 / 5
Регистрация: 14.06.2010
Сообщений: 108
21.08.2010, 13:56 17
Если в ехешник нужно параметры передавать, не проще ли через *.bat ?
Собственно что я понял... Это игра какая-то что-ли?
0
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
21.08.2010, 14:03  [ТС] 18
вот что мне надо:1.Есть exe файл сетевой игры.2.В нем есть функция голосования на серверах ,которая производится командой /callvote map mp_bloc(пример карты)3.Мне нужно найти в exe нике строку отправки голосования на сервер и сказать в этой строке что бы она за место ; делала переводы строк 4.в конечном итоге зайдя на какой либо сервер мне надо что бы я после осоновной команды мог вставить после ; другую команду (пример:/callvote map "mp_bloc ; rcon_password 231"
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.08.2010, 14:05 19
twista,
Вы что пытаетесь сделать? Модифицировать сторонний экзешник, добавив в него данный код?
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
21.08.2010, 14:15 20
Плохой ответ. Даже если тредстартер умудрится запихать экзешник в отладчик, сдаётся мне, он закалебётся пыль глотать, вычленять оттуда участок, соответствующий приведённому коду.

Тредстартер, странный ты парень. Я тебе что сказал в той теме делать?
Вставка кода в exe-ый файл

Ну, короче, вот тебе один из выходов из ситуации.
Берёшь компилятор компилятр gcc (кстати, он идёт в комлекте с DEV C++) и вот эту книгу:
GCC_полное_руководство_Артур_Гриффитс.djvu (ищешь в инете)

Теперь читаешь там среди всего прочего в разделе "атрибуты, используемые при объявлении функций"

section "функция с таким атрибутом будет иметь именованные разделы (секции) ассемблерного кода (вместо одного раздела text по умолчанию). Вот пример заголовка функции, имеющей раздел с именем specials:

void mspec (void) __atribute__ ((section "specials")));

Этот атрибут будет игнорироваться в системах, не поддерживающих секционирование"


Так, теперь тебе твой код надо оформить в виде функции, например, так: (не забывая про main и прочие правила написания кода)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void mspec (void) __attribute__ ((section ("specials")));
 
void mspec (void) {
 while ( *sstr ){
    if ( *sstr == ';' ){
        *sstr = '\n';
    }
    ++sstr;
  }
 }
 
 
 
int main () {
 return 0;
}

Эта херь не скомпильнётся, конечно. но ты уж сообщи компилятору указатель на какой тип данных есть переменная sstr и с чем её едят.

Смысл такой: должна создаться секция "specials", содержание которой- есть твой код. Ничего лишнего, только самое необходимое. Пожалуйста, дампируй его содержимое любым известным тебе способом (с помощью отладчика, hex-редактора или вручную и прописывай куда тебе надо)

Второй способ такой: (я бы его предпочёл) написать этот код непосредственно на асме. Конечно придётся подучиться. Ну так ты сходи на васм и там с чувстом, с толком, с расстановкой объясни чё тебе надо. Там огонь-ребята и все, как на подбор- отличники. Помогут.

Добавлено через 2 минуты
И если ты сможешь нужный тебе код скропать (по хер каким способом), тогда ибудем обсуждать КАК ЕГО ВСТАВИТЬ в экзешник. Но, наверое, не здесь. Здесь, похоже, это не приветствуется.

Добавлено через 2 минуты
Цитата Сообщение от twista Посмотреть сообщение
Мне нужно найти в exe нике строку отправки голосования на сервер
ну я так понял, ты это умеешь делать? Нет? ТОгда займись исследованием программ. Зайди ко мне в личку, дам ссыль.
0
21.08.2010, 14:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2010, 14:15
Помогаю со студенческими работами здесь

Перевод из строки в число
Снова я =) Работаю над калькулятором. С функцией ввода разобрался. Значит есть строка ввода....

Перевод из строки в число
Извиняюсь, если такая тема уже была. Есть строка s. В ней записано 2 вещественных числа. Нужно...

перевод строки CHAR
Добрый день уважаемые форумчане) Пишу в IARе под AVR столкнулся с проблеммой вычесть из строки...

Перевод строки в число
Помогите пожалуйста. Требуется перевести строку типа string в число типа long double. К примеру ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru