Считывание строк из потока

Тема в разделе "Общие вопросы по С и С++", создана пользователем ESWANT, 27 июл 2007.

Статус темы:
Закрыта.
  1. ESWANT

    ESWANT Гость

    Имеется текстовый файл. Вот так он открывается блокнотом (смотри в прикрепленной картинке)
    Там в середине красной стрелочкой отмечен символ конца строки 0x0D
    Eсли копировать содержимое из блокнота в ворд то строки делятся по этому символу

    Я читаю строки из этого файла таким образом:
    strcpy(dstr,"\0");
    inFile.get(dstr,_MAX_FILE_STRING,'\n');//считать строку из файла в dstr до \n
    if (!inFile) return -1;
    inFile.get();//извлеку \n

    тоесть если строка разделяется двумя символами 0x0D 0x0A или 0x0A то ВСЕ ПОЛУЧАЕТСЯ
    а если строка разделена только 0x0D то inFile.get просто не "видит" этого символа
    И в dstr попадает ВСЕ и то что после этого символа, пока не закончится буфер dstr

    КАК СКОПИРОВАТЬ В dstr ТОЛЬКО ДО ЭТОГО СИМВОЛА
    ПОМОГИТЕ. ЭТО КАК ТО ОЧЕНЬ ПРОСТО ДОЛЖНО ДЕЛАТЬСЯ
     

    Вложения:

    • ____.bmp
      Размер файла:
      4,8 КБ
      Просмотров:
      52
  2. mms

    mms Гость

    Вроде как 0x0d - это не '\n' перевод каретки на новую строку, а '\r' - возврат коретки к началу строки. Если надо скопировать только до 0x0d - то вместо '\n' поставить '\r'.

    inFile.get(dstr,_MAX_FILE_STRING,'\r');
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей