Авторизируйтесь,
чтобы продолжить
Некоторые функции доступны только зарегистрированным пользователям
Неправильный логин или пароль

Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!

Здравствуйте, гость ( Вход | Регистрация )



85 страниц V < 1 2 3 4 5 > »   
Ответить в эту темуОткрыть новую тему
> Язык Си/С++, вопросы и ответы
горынычь
сообщение 22.10.2008, 18:41
Сообщение #41


Молчун
Group Icon


Группа: Пользователи
Сообщений: 85
Регистрация: 14.10.2008
Пользователь №: 54 902



Репутация:   15  


помогите еще перевести в 16 8 и 2 кодировку число 16011992

Сообщение отредактировал горынычь - 22.10.2008, 18:41
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
КостяМХ
сообщение 22.10.2008, 18:57
Сообщение #42


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 62
Регистрация: 22.9.2008
Пользователь №: 50 743



Репутация:   3  


Цитата(горынычь @ 22.10.2008, 18:41) *

помогите еще перевести в 16 8 и 2 кодировку число 16011992

111101000101001011011000 = 2 сс
75051330 = 8 сс
F452D8 = 16 сс
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ktak
сообщение 22.10.2008, 20:05
Сообщение #43


Технический специалист
Group Icon


Группа: VIP
Сообщений: 1 354
Регистрация: 18.12.2006
Из: Новосибирск
Пользователь №: 18



Репутация:   124  


Цитата(горынычь @ 22.10.2008, 18:41) *

помогите еще перевести в 16 8 и 2 кодировку число 16011992

?А слабо написать коротенькую программку:
Код

#include <stdio.h>

int main(void) {
    int number = 16011992;
    printf("OCTAL = %o\nHEX = %X\n", number, number);
    return 0;
}

В двоичный вид легко глазами перевести из OCTAL или HEX.

Или, если на Linux, в командной строке:
printf "OCT = %o\nHEX = %X\n" 16011992 16011992
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AxoN
сообщение 23.10.2008, 19:41
Сообщение #44


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 1 225
Регистрация: 25.10.2007
Пользователь №: 8 658



Тогда уж дописать чтобы и в двоичную переводила smile.gif
Код

#include <stdio.h>

int main(void)
{
    int i, number = 16011992;
    printf("OCTAL = %o\nHEX = %X\n", number, number);
    for(i=8;i>=0;i--)
    {
        printf("%d",(number>>i)&0x01);
    }
    return 0;
}


Сообщение отредактировал AxoN - 23.10.2008, 19:41
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AxoN
сообщение 24.10.2008, 15:57
Сообщение #45


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 1 225
Регистрация: 25.10.2007
Пользователь №: 8 658



Теперь у меня вопрос к вам.
Нужно в динамический массив считать текстовый файл. Ничего сложного, но мне нужно что бы считывание производилось в отдельной функции. Пробовал сделать, все вроде правильно, но когда пытаюсь к примеру распечатать какую нибудь строку из этого массива в main() выдает "Ошибка сегментирования". Кто нить помогите с примером smile.gif
ЗЫ Под линукс.

Сообщение отредактировал AxoN - 24.10.2008, 15:58
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 25.10.2008, 8:54
Сообщение #46


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 723
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(AxoN @ 24.10.2008, 14:57) *

Теперь у меня вопрос к вам.
Нужно в динамический массив считать текстовый файл. Ничего сложного, но мне нужно что бы считывание производилось в отдельной функции. Пробовал сделать, все вроде правильно, но когда пытаюсь к примеру распечатать какую нибудь строку из этого массива в main() выдает "Ошибка сегментирования". Кто нить помогите с примером smile.gif
ЗЫ Под линукс.

Покажи что ты делаешь и что у тебя не получается.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AxoN
сообщение 25.10.2008, 19:51
Сообщение #47


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 1 225
Регистрация: 25.10.2007
Пользователь №: 8 658



Цитата(mephisto @ 25.10.2008, 8:54) *

Покажи что ты делаешь и что у тебя не получается.

Код

char **fileSB;

int input_from_file()
{
    FILE *stream;
    char line[100];
    int i=0;

    stream = fopen("programmaSB.txt","r");
    if(stream == NULL) {printf("Not found file!\n"); return -1;}
    while (1)
    {
    if(feof(stream)) break;
    fgets(line, sizeof(line)-1, stream);
    i++;
    }
    rewind(stream);
    lenfile = i;
    fileSB = (char **)malloc(lenfile*sizeof(char **));
    for(i=0;i<lenfile;i++)
    {
    fgets(line,sizeof(line)-1,stream);
    fileSB[i] = (char *)malloc(sizeof(line));
    strcpy(fileSB[i],line);
    }
    fclose(stream);
    return 0;  
}

int main()
{
    input_from_file();
    return 0;
}


В общем сделал fileSB глобальной.
Как я понял чтобы при локальной переменной fileSB все работало нужно выделять память под нее в main(). А для этого нужно знать кол-во строк в файле, т.е. либо немного захломлять main() либо делать отдельную ф-ию для подсчета строк.
Или я что то упустил из виду? smile.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 25.10.2008, 19:56
Сообщение #48


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 723
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(AxoN @ 25.10.2008, 18:51) *

В общем сделал fileSB глобальной.
Как я понял чтобы при локальной переменной fileSB все работало нужно выделять память под нее в main(). А для этого нужно знать кол-во строк в файле, т.е. либо немного захломлять main() либо делать отдельную ф-ию для подсчета строк.
Или я что то упустил из виду? smile.gif

А зачем тебе каждую строку в отдельный массив пихать? Я бы нашел размер файла и считал бы его в один массив, предварительно выделив память под него с помощью malloc
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AxoN
сообщение 25.10.2008, 20:01
Сообщение #49


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 1 225
Регистрация: 25.10.2007
Пользователь №: 8 658



Цитата(mephisto @ 25.10.2008, 19:56) *

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

А это позволит работать с каждой строкой? Мне кажется если каждая строка будет в отдельном массиве проще будет...

Сообщение отредактировал AxoN - 25.10.2008, 20:01
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 25.10.2008, 20:54
Сообщение #50


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 723
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(AxoN @ 25.10.2008, 19:01) *

А это позволит работать с каждой строкой? Мне кажется если каждая строка будет в отдельном массиве проще будет...

Что значит работать с каждой строкой?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AxoN
сообщение 25.10.2008, 22:09
Сообщение #51


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 1 225
Регистрация: 25.10.2007
Пользователь №: 8 658



Цитата(mephisto @ 25.10.2008, 20:54) *

Что значит работать с каждой строкой?

Ну к примеру мне нужно каждую строку разбить на слова и в зависимости от положения в этой строке одни и те же слова будут иметь разный смысл:
Код

10 input x
20 y = 10

В первом случае 10 просто номер стоки, а во втором значение переменной.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 26.10.2008, 11:05
Сообщение #52


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 723
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(AxoN @ 25.10.2008, 21:09) *

Ну к примеру мне нужно каждую строку разбить на слова и в зависимости от положения в этой строке одни и те же слова будут иметь разный смысл:
Код

10 input x
20 y = 10

В первом случае 10 просто номер стоки, а во втором значение переменной.

Писал я как-то интерпретатор бэйсика, но было это давно и не правда smile.gif

Замечания по твоему коду
  1. Не важно где определять переменную fileSB, но лучше не делать её глобальной.
  2. Считать строки заранее не надо, выдели память, скажем на 256 строк, при необходимости увеличь массив с помощью realloc
    Цитата

    realloc() изменяет размер блока динамической памяти, на который
    указывает ptr. Новый размер блока будет равен size байт. Его
    содержимое останется неизменным в промежутке вплоть до прежнего или
    нового размера, смотря что меньше; добавленная память не
    инициализируется. Если ptr равен NULL, то результат вызова
    эквивалентен malloc(size); если size равен нулю, то результат вызова
    эквивалентен free(ptr). Кроме случая, когда ptr равен NULL, он должен
    указывать на память, выделенную ранее посредством malloc(), calloc()
    или realloc().
  3. Я бы не был уверен, что в строке будет всегда меньше 100 символов, мой опыт подсказывает, что лучше использовать функцию getline
    » Спойлер (нажмите, чтобы прочесть) «

А вообще мне если честно не понятно, зачем тебе копировать файл в память, ИМХО надо начинать синтаксический разбор сразу. Да и зачем руками это делать? Если уж ты пишешь под GNU/Linux, то лучше посмотри в сторону bison - отличное средство для написания парсеров.

И наконец, а оно тебе надо, нет я понимаю, написать интерпретатор это конечно интересно, но если тебе нужен встраиваемый язык, можно взять готовый, например Tcl.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AxoN
сообщение 26.10.2008, 12:24
Сообщение #53


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 1 225
Регистрация: 25.10.2007
Пользователь №: 8 658



Спасибо за советы. Очень пригодятся super.gif
А делать мне его все равно придется. Это моя курсовая wacko.gif В первой части мы писали эмулятор простенького компьютера, а теперь вот к нему компилятор smile.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dima75
сообщение 26.10.2008, 17:34
Сообщение #54


радость в жизни - это когда есть кто-то рядом.
Group Icon


Группа: Sibnet-club
Сообщений: 958
Регистрация: 11.10.2007
Из: Новосибирск
Пользователь №: 7 686



Репутация:   66  


Цитата(КостяМХ @ 16.10.2008, 12:30) *

Тут слишком много текста, преподователь сказал там не более 3 строк, просто подключение чегото, и описание и всё...

для виндовс, поддержка русских символов в консоли. (VC6.0)
Код
#include <iostream.h>
#include <windows.h>
char buf[256];
char*Rus(char*b); //ANSI
{
      CharToOem(b,buf);
      return buf;
}
void main() { cout <<Rus("Привет"); }


Сообщение отредактировал dima75 - 26.10.2008, 19:19
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AxoN
сообщение 27.10.2008, 13:01
Сообщение #55


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 1 225
Регистрация: 25.10.2007
Пользователь №: 8 658



mephisto
у меня вопрос по getline.
Почему если не использовать #define _GNU_SOURCE выдает предупреждение
Код
getline.c: In function ‘main’:
getline.c:14: warning: implicit declaration of function ‘getline’


Вот что нашел
Код

- Macro: _GNU_SOURCE
     If you define this macro, everything is included: ANSI C, POSIX.1,
     POSIX.2, BSD, SVID, X/Open, and GNU extensions.  In the cases where
     POSIX.1 conflicts with BSD, the POSIX definitions take precedence.

     If you want to get the full effect of `_GNU_SOURCE' but make the
     BSD definitions take precedence over the POSIX definitions, use
     this sequence of definitions:

          #define _GNU_SOURCE
          #define _BSD_SOURCE
          #define _SVID_SOURCE

     Note that if you do this, you must link your program with the BSD
     compatibility library by passing the `-lbsd-compat' option to the
     compiler or linker.  *Note:* If you forget to do this, you may get
     very strange errors at run time.

Это связано с какими то стандартами?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 27.10.2008, 22:57
Сообщение #56


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 723
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(AxoN @ 27.10.2008, 12:01) *

mephisto
у меня вопрос по getline.
Почему если не использовать #define _GNU_SOURCE выдает предупреждение

getline отсутствует в стандарте C и доступна только под GNU системами (glibc). Чтобы использовать getline, под window, придётся либо использовать libgw32c, либо реализовать её самому smile.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
-=Aleks=-
сообщение 28.10.2008, 12:03
Сообщение #57


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 274
Регистрация: 15.8.2007
Из: -=БАРНАУЛ=-
Пользователь №: 3 929



Репутация:   34  


Люди, помогите написаь прогу для завершения работы Windows с использованием API функции.... Либо ExitWindows или ExitWindowsEx...

У меня почему то он всегда завершение сеанса делает.....
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ron4eGG
сообщение 29.10.2008, 21:21
Сообщение #58


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 582
Регистрация: 13.9.2008
Пользователь №: 49 192



Репутация:   106  


Извините, но сначало нужно выкладывать инфу, учебники итд!!!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AxoN
сообщение 21.12.2008, 23:09
Сообщение #59


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 1 225
Регистрация: 25.10.2007
Пользователь №: 8 658



Кстати кто нить подскажите чем можно заменить strtok? А то мне эта функция не нравится
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 21.12.2008, 23:12
Сообщение #60


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 723
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(AxoN @ 21.12.2008, 22:09) *

Кстати кто нить подскажите чем можно заменить strtok? А то мне эта функция не нравится

Задачу озвуч
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

85 страниц V < 1 2 3 4 5 > » 
Ответить в эту темуОткрыть новую тему
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 23.7.2019, 4:33
Редакция: (383) 347-86-84

Техподдержка: (383) 347-22-44
help.sibnet.ru
Размещение рекламы:
тел: (383) 347-06-78, 347-10-50

Правила использования материалов