Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Lambont
92 / 91 / 61
Регистрация: 23.11.2013
Сообщений: 242
1

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

19.02.2014, 17:46. Просмотров 805. Ответов 12

Здравствуйте! Я видимо наверно жутко туплю, но я никак не пойму почему при попытке удалении в строке символа новой строки '\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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 17:46
Ответы с готовыми решениями:

Вывести 2 последних символа string
Здравствуйте. Задача заключается в том, чтобы вывести 2 последних символа...

Определение первого символа string
Здравствуйте, в C++ я совсем новичок. Столкнулся со следующей проблемой: не...

С какого символа начинается std::string?
С нулевого, или с первого?

Узнать позицию символа в строке string
Привет, как узнать индекс символа 'l' в строке string ? string s = &quot;Hello&quot;;

Обрезать/скопировать string до определенного символа
Есть ли библиотечная функция для данных типа string, которая урезает или...

12
Progers
New to C++
83 / 44 / 10
Регистрация: 14.01.2013
Сообщений: 258
19.02.2014, 17:53 2
QT creator, Компилятор MinGW.
Проблем нету, последующую строку не удаляет.
0
user-men
23 / 23 / 15
Регистрация: 17.02.2014
Сообщений: 307
19.02.2014, 17:56 3
\n- ето следуючая страка
0
Тамика
Котовчанин
919 / 463 / 195
Регистрация: 16.02.2010
Сообщений: 3,267
Записей в блоге: 32
19.02.2014, 18:17 4
Цитата Сообщение от user-men Посмотреть сообщение
\n- ето следуючая страка
Апсалютна верна.
0
Progers
New to C++
83 / 44 / 10
Регистрация: 14.01.2013
Сообщений: 258
19.02.2014, 18:26 5
Ну вот, попробовал на студии, всё нормально.
1
Миниатюры
удаление символа '\n' в string  
Тамика
Котовчанин
919 / 463 / 195
Регистрация: 16.02.2010
Сообщений: 3,267
Записей в блоге: 32
19.02.2014, 18:31 6
Цитата Сообщение от Progers Посмотреть сообщение
Ну вот, попробовал на студии, всё нормально.

Не по теме:

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

0
easybudda
Модератор
Эксперт CЭксперт С++
10100 / 6009 / 1507
Регистрация: 25.07.2009
Сообщений: 11,396
19.02.2014, 18:36 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 скачать+поставить?
1
Тамика
19.02.2014, 18:51
  #8

Не по теме:

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

0
easybudda
19.02.2014, 18:55
  #9

Не по теме:

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

0
Тамика
Котовчанин
919 / 463 / 195
Регистрация: 16.02.2010
Сообщений: 3,267
Записей в блоге: 32
19.02.2014, 18:56 10
Цитата Сообщение от easybudda Посмотреть сообщение

Не по теме:


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

Не по теме:

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

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

Не по теме:

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

0
Lambont
92 / 91 / 61
Регистрация: 23.11.2013
Сообщений: 242
19.02.2014, 23:08  [ТС] 13
Хм... Решение проблемы оказалось неожиданным, я сменил в свойствах проекта многобайтовую кодировку обратно на юникод и всё заработало как положено...

Добавлено через 19 минут
И кстати заметил ещё такую вещь, если свойства оставить те же (многобайтовую кодировку) и ввести больше символов после '\n' например "TestText\nWIN1234567890", то он выведет:
Код
TestText567890
то есть он вслед "сжирает" ещё 7 символов...
0
19.02.2014, 23:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 23:08

Занести код символа в std::string
Всем привет. Есть задача: у нас есть std::vector&lt;char&gt; v; в вектор я...

Удаление символа
как удалить последний символ в файле ???

String и кириллица. Вставка переноса строки после n-ного символа
Добрый вечер, появилась задачи форматирования строки вывода по ширине...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru