Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Записать в char два числа, и прочитать от туда 
:(
    Опции темы
Code Magister
  Дата 27.4.2005, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Magister of Code
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 9.7.2004
Где: Kiev

Репутация: 1
Всего: 1



С++ 3.1
Короче мне надо считать изображение дисплея(в графическом режиме) в файл, исползуя 4-битовое представление каждого пикселя.
Как я понял последовательно считывать и записывать по 2 числа в char.
Но что-то у меня с этим смещением не получается.
Как записать, а потом прочитать два числа(4 битовых) в чар?

Это сообщение отредактировал(а) _Slipknot - 27.4.2005, 18:37
--------------------
PM MAIL WWW ICQ   Вверх
chaos
Дата 27.4.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



вот те пример не большой
Код

void main()
{
  unsigned char ch;
  ch = 0;
  //записываем первое число
  ch += (chislo1 & 0x0F); //устраняем переполнение те > 1111b
  //записываем второе число
  ch += ((chislo2 & 0x0F) << 4) ;
}


PM WWW   Вверх
Code Magister
Дата 28.4.2005, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Magister of Code
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 9.7.2004
Где: Kiev

Репутация: 1
Всего: 1



Спасибо! smile
--------------------
PM MAIL WWW ICQ   Вверх
Code Magister
Дата 28.4.2005, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Magister of Code
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 9.7.2004
Где: Kiev

Репутация: 1
Всего: 1



Вобщем, я сам придумал как считывать от туда:
Код

    chislo2=ch /16;
    chislo1=ch-chislo2*16;

Не знаю почему, но считывает правильно.
И написал я эту прогу таким образом(сначала считывает экран и записывает в файл, а потом считывает файл и выводит на дисплей):
Код

#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
unsigned char ch, ch1, ch2;
int chislo1=15, chislo2=15, gd, gm, p1, p2;
FILE* file;

void main()
{
  file=fopen("lol.txt","w+");
  clrscr();
  gd=DETECT;
  initgraph(&gd, &gm, "F:\\BORLANDC\\BGI");
  for(int i=0; i<2000; i++)
  {
  randomize;
  putpixel(random(640), random(480), random(15) );
  }
  for(i=0; i<640; i+=2)
  {
  for(int j=0; j<480; j++)
  {
    p1=getpixel(i,j);
    p2=getpixel(i+1,j);
    ch = 0;
    ch += (chislo1 & 0x0F);
    ch += ((chislo2 & 0x0F) << 4);
    fputc(ch,file);

  }
  }
   printf("READY?\n");
   delay(1000);
   printf("GO GO GO");

   for(i=0; i<640; i+=2)
  {
  for(int j=0; j<480; j++)
  {

    fscanf(file,"%i" , &ch);
    ch2=ch /16;

    ch1=ch-ch2*16;
    putpixel(i,j,ch1);
    putpixel(i+1,j,ch2);
   }
   }
  getch();
  closegraph();
  fclose(file);
}

ЕСТЕСТВЕННО ОНА НЕ ПАШЕТ! А мне седня еще 2 проги надо написать, поэтому прошу Вас помочь мне разобраться с этой. Напоминаю, что в char надо утрамбовать 2 пикселя.

--------------------
PM MAIL WWW ICQ   Вверх
Code Magister
Дата 28.4.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Magister of Code
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 9.7.2004
Где: Kiev

Репутация: 1
Всего: 1



ээээй!
--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.