Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: замена символов в файле (с++)  (Прочитано 3765 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #15 : 13 Ноября 2015, 21:21:57 »
SergeyIT,
Таким образом строка читается вместе с '\n', что мне не нужно
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #16 : 13 Ноября 2015, 22:15:20 »
Гриб_под_зонтом, пробовал, работает? И почему в пустой строке нет '\n'? Наверно отбрасывается..., чтобы прочитать символы конца строки файл нужно открывать и обрабатывать как бинарный
Извините, я все еще учусь

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #17 : 13 Ноября 2015, 22:21:58 »
SergeyIT,
Я имею ввиду что этот способ я пробовал раньше сам,но он читает символ конца строкии переносит его во второй файл, а мен нужно этот символ заменить на двоеточие
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #18 : 13 Ноября 2015, 22:34:28 »
Гриб_под_зонтом, вот тебя просили показать файл, скинуть или в хекс редакторе показать... Кто же знает, что там... подозреваю, что у тебя виндоуз файл, в котором конец строки записывается 2 байтами 0xD 0xA - 0xD не удаляется из строки - это и мешает.
Извините, я все еще учусь

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #19 : 13 Ноября 2015, 22:37:46 »
Да, переслал мне его друг, который и-под винды сидел... Как то не обратил на это внимания. Какможно данные файл переобразовать в unix-подобный?
« Последнее редактирование: 07 Февраля 2016, 00:17:03 от Гриб_под_зонтом »
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #20 : 13 Ноября 2015, 22:43:33 »
Гриб_под_зонтом, обработать как двоичный файл и заменить 2 контрольных символа на :
Извините, я все еще учусь

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #21 : 13 Ноября 2015, 22:46:49 »
SergeyIT,
а можно поподробней?
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #22 : 13 Ноября 2015, 23:28:42 »
Гриб_под_зонтом, типа так (но на Си... не люблю ++ для таких задач)
(Нажмите, чтобы показать/скрыть)
Извините, я все еще учусь

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #23 : 14 Ноября 2015, 00:04:37 »
Гриб_под_зонтом, я сам файл хотел, чтоб в hex редакторе посмотреть, что там на самом деле. Там может быть \r или \n или даже что-то более экзотическое, как и \n с чем-то ещё, например \r\n (что скорее всего). Почитай это для начала. Потом всё же hex редактором глянь.
« Последнее редактирование: 14 Ноября 2015, 00:50:02 от peregrine »

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #24 : 14 Ноября 2015, 00:08:45 »
peregrine, да он же написал, что прислали с виндовой машины.

Извините, я все еще учусь

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #25 : 16 Ноября 2015, 20:44:02 »
peregrine,
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #26 : 16 Ноября 2015, 22:33:55 »
Гриб_под_зонтом,
\r\n (0D 0A)

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #27 : 17 Ноября 2015, 18:01:06 »
peregrine,
если в коде заменяю '\n' на '\r\n' пишет  warning: multi-character character constant [-Wmultichar], что впринципе было ожидаемо.
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #28 : 17 Ноября 2015, 21:07:16 »
Гриб_под_зонтом, у тебя в файле перенос строк не \n, а \r\n. Поэтому у тебя это
SergeyIT,
Я имею ввиду что этот способ я пробовал раньше сам,но он читает символ конца строкии переносит его во второй файл, а мен нужно этот символ заменить на двоеточие

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: замена символов в файле (с++)
« Ответ #29 : 17 Ноября 2015, 21:28:12 »
peregrine,
Я знаю поэтому немного отредактировал код первого сообщенияно тогда выдаёт предупреждение и программа не правильно работает
peregrine,
если в коде заменяю '\n' на '\r\n' пишет  warning: multi-character character constant [-Wmultichar], что в принципе было ожидаемо.
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

 

Страница сгенерирована за 0.022 секунд. Запросов: 21.