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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lambont
25 / 25 / 14
Регистрация: 23.11.2013
Сообщений: 61
#1

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

19.02.2014, 17:46. Просмотров 683. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос удаление символа '\n' в string (C++):

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

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

Занести код символа в std::string - C++
Всем привет. Есть задача: у нас есть std::vector&lt;char&gt; v; в вектор я добавляю элементы так: v.push_back(0x55); возможно...

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

Обрезать/скопировать string до определенного символа - C++
Есть ли библиотечная функция для данных типа string, которая урезает или копирует строку до определенного символа?Типа strtok для char'ов....

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

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

Не по теме:

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

easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
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 скачать+поставить?
Тамика
19.02.2014, 18:51
  #8

Не по теме:

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

easybudda
19.02.2014, 18:55
  #9

Не по теме:

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

Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,961
Записей в блоге: 27
19.02.2014, 18:56 #10
Цитата Сообщение от easybudda Посмотреть сообщение

Не по теме:


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

Не по теме:

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

Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
19.02.2014, 18:58 #11
Тамика, Студия, 2013 года.
Tools -> options -> Enviroment -> Color theme = Dark
mustimur
268 / 222 / 57
Регистрация: 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

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

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

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

Найти вхождение одного символа std::string в строку char* - C++
Каким образом можно найти вхождение одного символа std::string в строку char*? Наоборот то понятное дело как, но нужно именно так

Удаление символа в строке - C++
Подскажите какой функцией удалять символ в строке (String не использовать).

Удаление символа в строке - C++
Помогите пожалуйста, вот программа: #include &lt;iostream&gt; using namespace std; int main() { int k; cin &gt;&gt; k; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.02.2014, 23:08
Ответ Создать тему
Опции темы

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