Форум программистов, компьютерный форум CyberForum.ru

удаление символа '\n' в string - C++

Восстановить пароль Регистрация
 
Lambont
7 / 7 / 4
Регистрация: 23.11.2013
Сообщений: 30
19.02.2014, 17:46     удаление символа '\n' в string #1
Здравствуйте! Я видимо наверно жутко туплю, но я никак не пойму почему при попытке удалении в строке символа новой строки '\n' у меня в 2010 студии удаляется вся последующая часть строки стоящая после этого символа? Вот к примеру:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
int main() {
     
    std::string str("TestText\nWIN");
    str.erase(str.find('\n'), 1);
    std::cout << str << std::endl;
     
    return 0;
    
}
Выводит:
удаление символа '\n' в string

Самое интересное, что здесь всё правильно получается: http://ideone.com/G0vp6t
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 17:46     удаление символа '\n' в string
Посмотрите здесь:

C++ Удаление символа из строки
Удаление символа C++
C++ С какого символа начинается std::string?
C++ Удаление символа из массива
C++ Занести код символа в std::string
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
19.02.2014, 17:53     удаление символа '\n' в string #2
QT creator, Компилятор MinGW.
Проблем нету, последующую строку не удаляет.
user-men
22 / 22 / 8
Регистрация: 17.02.2014
Сообщений: 300
19.02.2014, 17:56     удаление символа '\n' в string #3
\n- ето следуючая страка
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
19.02.2014, 18:17     удаление символа '\n' в string #4
Цитата Сообщение от user-men Посмотреть сообщение
\n- ето следуючая страка
Апсалютна верна.
Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
19.02.2014, 18:26     удаление символа '\n' в string #5
Ну вот, попробовал на студии, всё нормально.
Миниатюры
удаление символа '\n' в string  
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
19.02.2014, 18:31     удаление символа '\n' в string #6
Цитата Сообщение от Progers Посмотреть сообщение
Ну вот, попробовал на студии, всё нормально.

Не по теме:

Прошу прощения, вопрос не по теме. А как Вы сделали интерфейс черным? Это ж студия 12?

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
19.02.2014, 18:36     удаление символа '\n' в string #7
Lambont, действительно чудно' как-то. У меня в невиндовсе тоже всё как задуманно отработало:
Код
[andrew@andrew strings]$ g++ -o Lambont_erase_lf Lambont_erase_lf.cpp 
[andrew@andrew strings]$ ./Lambont_erase_lf 
TestTextWIN
Вот если бы символа перевода строки вообще небыло - получили бы что-то вроде
Код
$ ./Lambont_erase_lf 
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::erase
Аварийный останов (core dumped)
но это совсем другая история... А не пробовали MinGW скачать+поставить?
Тамика
19.02.2014, 18:51
  #8

Не по теме:

Ээээ, ну кто-нибудь! Как сделать тему черной в студии?

easybudda
19.02.2014, 18:55
  #9

Не по теме:

Цитата Сообщение от Тамика Посмотреть сообщение
Ээээ, ну кто-нибудь! Как сделать тему черной в студии?
Регулятором яркости на мониторе

Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
19.02.2014, 18:56     удаление символа '\n' в string #10
Цитата Сообщение от easybudda Посмотреть сообщение

Не по теме:


Регулятором яркости на мониторе

Не по теме:

А как же подсветка кода тогда?))))

Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
19.02.2014, 18:58     удаление символа '\n' в string #11
Тамика, Студия, 2013 года.
Tools -> options -> Enviroment -> Color theme = Dark
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
19.02.2014, 18:58     удаление символа '\n' в string #12
Цитата Сообщение от Тамика Посмотреть сообщение
Ээээ, ну кто-нибудь! Как сделать тему черной в студии?

Не по теме:

С помощью Visual Studio 2012 Color Theme Editorhttp://visualstudiogallery.msdn.microsoft.com/366ad100-0003-4c9a-81a8-337d4e7ace05

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 23:08     удаление символа '\n' в string
Еще ссылки по теме:

C++ Обрезать/скопировать string до определенного символа
Узнать позицию символа в строке string C++
C++ Удаление символа в строке

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Lambont
7 / 7 / 4
Регистрация: 23.11.2013
Сообщений: 30
19.02.2014, 23:08  [ТС]     удаление символа '\n' в string #13
Хм... Решение проблемы оказалось неожиданным, я сменил в свойствах проекта многобайтовую кодировку обратно на юникод и всё заработало как положено...

Добавлено через 19 минут
И кстати заметил ещё такую вещь, если свойства оставить те же (многобайтовую кодировку) и ввести больше символов после '\n' например "TestText\nWIN1234567890", то он выведет:
Код
TestText567890
то есть он вслед "сжирает" ещё 7 символов...
Yandex
Объявления
19.02.2014, 23:08     удаление символа '\n' в string
Ответ Создать тему
Опции темы

Текущее время: 03:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru