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

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

17.03.2009, 02:35. Показов 5872. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru