Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2009, 15:36   #1
budulaj-ua
Новичок
Джуниор
 
Регистрация: 14.10.2009
Сообщений: 2
По умолчанию C++ ASCII #26

Чому при зчитуванні з файлу в C++ з допомогою .get(); при попаданні на нього ASCII #26 виводить зачення "-1", наступне зчитування так само. Як це обійти???
Чому потокове зчитування з файлу в C++ з допомогою get(int) при попаданні на символ ASCII #26 - повертає значення "-1". Як це обійти???
budulaj-ua вне форума Ответить с цитированием
Старый 14.10.2009, 15:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А можно на код глянуть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.10.2009, 15:59   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а можно по русски?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.10.2009, 16:09   #4
budulaj-ua
Новичок
Джуниор
 
Регистрация: 14.10.2009
Сообщений: 2
По умолчанию

З читую з *.bmp файлу масиви кольорів RGB
Код:
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

int main ()
{
  int *cap = new int[54]; //
  ifstream fin ("in.bmp");
  int a = fin. get();
  for (int i = 0 ;i <= 53; i++)
  {
    cap[i] = a;
    a = fin.get();
  }
  int width = cap[18]+cap[19]*256;
  int height = cap[22]+cap[23]*256;
  int last_zero = width - (int)trunc(width/4)*4;
  int **red = new int *[width];
  for(int i = 0; i<=width-1; i++)red[i]=new int [height];
  int **green = new int *[width];
  for(int i = 0; i<=width-1; i++)green[i]=new int [height];
  int **blue = new int *[width];
  for(int i = 0; i<=width-1; i++)blue[i]=new int [height];
  for(int j = height -1; j >= 0 ; j--)
  {
    for (int i = 0; i <= width-1; i++)
    {
      blue [i][j] = fin.get();
      green[i][j] = fin.get();
      red[i][j] = fin.get();
    }
    if (last_zero != 0)
      for (int k = 0; k <= last_zero-1;k++) a = fin.get();
  }
  fin.close();
  for(int i = 0; i<=width-1; i++)delete []*red;
  delete []red;
  for(int i = 0; i<=width-1; i++)delete []*green;
  delete []green;
  for(int i = 0; i<=width-1; i++)delete []*blue;
  delete []blue;
  delete []cap;
  return 0;
}
Можно на русском.
Почему при считывании из файла в C++ с помощью .get(); при попадании на него ASCII #26 выводит зачення "-1", следующее считывание так же. Как это обойти???
Считываю *.bmp файл.
Чому потокове зчитування з файлу в C++ з допомогою get(int) при попаданні на символ ASCII #26 - повертає значення "-1". Як це обійти???

Последний раз редактировалось Stilet; 14.10.2009 в 16:44.
budulaj-ua вне форума Ответить с цитированием
Старый 14.10.2009, 16:54   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

хм... Попробовал действительно такое выдает...
Это один из управляющих символов, наверное get на это реагирует
Попробуй открыть файл как бинарник

Код:
int _tmain(int argc, _TCHAR* argv[])
{
 ifstream fin;
 int c;
 fin.open("C:\\temp\\i",ios_base::binary);
 do{
  c=fin.get();
  cout<<(int)c<<' ';
 }while(c!=EOF);
 cin.get();
	return 0;
}
I'm learning to live...

Последний раз редактировалось Stilet; 14.10.2009 в 17:03.
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ASCII Dimarik Общие вопросы C/C++ 27 28.08.2009 14:50
ascii код dollemika Помощь студентам 2 29.04.2009 20:07
ASCII коды Strogg Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 03.04.2009 17:09
paskal ascii netcher Помощь студентам 1 03.03.2009 12:45
ASCII строки Mitron Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 10.02.2008 19:42