Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782

Символ новой строки в MFC

17.03.2009, 02:35. Показов 5923. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При работе в MFC нужно вести протокол работы, то есть, сделали операцию a + b = c, записали в окно и т.д.
Я создал Edit Control, с переменной типа CString, под названием hist, в процессе объявляю переменную CString str, и каждую операцию записываю в неё, например str += “+” и т.д. В конце пишу
C++
1
hist += (h + _T("\r\n"));
и в окне выводится нужный результат, в конце несколько квадратиков, которые не нужны, но перехода на новую строку нет.
Если написать
C++
1
hist += h;
тогда квадратиков нет, но так же нет и перехода на новую строку.
Как сделать переход на новую строку в Edit Control?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2009, 02:35
Ответы с готовыми решениями:

Символ новой строки
Всем привет) С маппировал текстовый файл в память. HANDLE file = CreateFile(fileNameWChar, GENERIC_READ | GENERIC_WRITE, 0, NULL,...

Зачем здесь символ новой строки?
Стивен Прата, Язык программирования С++, глава 7, пример 7 Никак не пойму, зачем здесь double temp; int i; for(i=0;...

Std::cin, символ новой строки
Подскажите, куда в данном примере после каждого cin'а девается символ новой строки? Насколько помню cin и cin.get его после себя оставляют...

8
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.03.2009, 03:46
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#include <iostream>
 
using namespace std;
 
/* склеивает строки */
int main(void)
{
    string s1 = "one",
           s2 = "two",
           s3;
    
    cout << s1
         << endl
         << s2
         << endl;
    cout << s1 + " " + s2 + "\r\n";
    return 0;
}
вывод
Code
1
2
3
4
5
[guest@station tmp]$ ./test
one
two
one two
[guest@station tmp]$
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.03.2009, 09:16  [ТС]
У меня на MFC не поддерживается тип string, то есть, объявляю
C++
1
string str = "abc",
компилятор выдаёт сообщение 'string' : undeclared identifier.
Но там есть тип CSting. В общем, как только не писал:
C++
1
2
history += (h + _T("\r\n"));
h += "\r\n"
не получается.
0
Заблокирован
17.03.2009, 09:22
_T("\r\n") - не надо _T ! Вот и не выходит, на крайняк можно писать
C++
1
hist += (h + (CString)"\r\n");
но по идее катит
C++
1
hist += (h + "\r\n");
Может не получаться если у тебя к примеру h - это или char *,(LPTSTR),(LPCTSTR) тогда перед h надо приводить к CString. думаю так по-любэ выйдет
C++
1
hist += (CString)((CString)h + "\r\n");
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.03.2009, 09:33  [ТС]
По идее-то должно работать, но в том то и дела, что не проходит
C++
1
hist += (h + "\r\n");
,
пишет: "binary '+' : no operator found which takes a right-hand operand of type 'const char [3]' (or there is no acceptable conversion)"
Вариант
C++
1
hist += (CString)((CString)h + "\r\n");
проходит, но результата нет - символа новой строки нет.
0
Заблокирован
17.03.2009, 11:29
Напиши что у ТЕБЯ за переменная h тогда помогу, вообще вижу что это у тебя const char[3], чегобы её не заменить на char ну сделай буферную переменную и запехни в неё свой конст чар. Попробуй ещё так
C++
1
hist += (CString(h) + "\r\n");
Конешно если у тебя ещё и hist LPCTSTR то нефига не выйдет, толька использовать буферную переменну на лету сложить не выйдет
0
Заблокирован
17.03.2009, 11:37
Чтоб не быть голословным кидаю свой проект (делал в MFC, весь код в функции
C++
1
void CTest13Dlg::OnOK()
).Короче открывай test13.dsw, запускай и жми ОК - всё по твоей формуле считается, сам погляди
Вложения
Тип файла: rar test13.rar (8.7 Кб, 36 просмотров)
Тип файла: rar test13.exe.rar (3.5 Кб, 22 просмотров)
0
Заблокирован
17.03.2009, 11:39
C++
1
2
3
CString hist;
const char h[] = "123";
hist += (CString(h) + "\r\n");
Всё работает!...
0
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
17.03.2009, 13:03  [ТС]
Переменная h у меня типа CString, но компилятор пишет, что это char [].
Ты на чём пишешь? Когда я вставляю часть твоего кода
C++
1
2
3
4
             CString hist;
    const char h[] = "123";
    hist += (CString(h) + "\r\n");
    m_edit1_1 += hist;
для теста в новый проект, то мне пишет "binary '+' : no operator found which takes a right-hand operand of type 'const char [3]' (or there is no acceptable conversion)", хотя твой проект компилируется без проблем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2009, 13:03
Помогаю со студенческими работами здесь

Ошибка: символ новой строки в потоке
После того как указываю 1 пункт (к-ство квартир),то мне выбивает сразу 2 и 3,а не поочередно,подскажите где я ошибся? #include...

Отбрасывает ли std::cin символ новой строки?
Здравствуйте. Есть следующий код (это задача из книги Праты): #include &lt;iostream&gt; const unsigned short strsize = 100; struct sBop ...

Будет ли добавлен символ новой строки при ошибочном вводе?
После того, как пользователь введет число и нажмеn enter в поток будет передан символ новой строки '\n'. Будет ли добавлен символ новой...

Как убрать символ новой строки, применяя перегруженный оператор <<?
Друзья! Ну то есть формируются строки хитрым способом (не вручную, лучше не углубляться в это) Потом получаю вектор этих строк. Надо...

Ввести символьную строку. Распечатать каждый символ массива с новой строки
Ввести символьную строку. Распечатать каждый символ массива с новой строки.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru