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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.82
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
17.03.2009, 02:35     Символ новой строки в MFC #1
При работе в MFC нужно вести протокол работы, то есть, сделали операцию a + b = c, записали в окно и т.д.
Я создал Edit Control, с переменной типа CString, под названием hist, в процессе объявляю переменную CString str, и каждую операцию записываю в неё, например str += “+” и т.д. В конце пишу
C++
1
hist += (h + _T("\r\n"));
и в окне выводится нужный результат, в конце несколько квадратиков, которые не нужны, но перехода на новую строку нет.
Если написать
C++
1
hist += h;
тогда квадратиков нет, но так же нет и перехода на новую строку.
Как сделать переход на новую строку в Edit Control?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2009, 02:35     Символ новой строки в MFC
Посмотрите здесь:

C++ Вывести введенное нами слово, причем каждый символ слова на новой строке
C++ Функция getline считывает несколько строк из файла, игнорируя символ новой строки
C++ Ввести символьную строку. Распечатать каждый символ массива с новой строки
C++ Как убрать символ новой строки, применяя перегруженный оператор <<?
Символ новой строки C++
Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной переменной C++
Запись в файл с новой строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.03.2009, 03:46     Символ новой строки в MFC #2
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;
}
вывод
Код
[guest@station tmp]$ ./test
one
two
one two
[guest@station tmp]$
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
17.03.2009, 09:16  [ТС]     Символ новой строки в MFC #3
У меня на MFC не поддерживается тип string, то есть, объявляю
C++
1
string str = "abc",
компилятор выдаёт сообщение 'string' : undeclared identifier.
Но там есть тип CSting. В общем, как только не писал:
C++
1
2
history += (h + _T("\r\n"));
h += "\r\n"
не получается.
YurA_280784
Заблокирован
17.03.2009, 09:22     Символ новой строки в MFC #4
_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");
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
17.03.2009, 09:33  [ТС]     Символ новой строки в MFC #5
По идее-то должно работать, но в том то и дела, что не проходит
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");
проходит, но результата нет - символа новой строки нет.
YurA_280784
Заблокирован
17.03.2009, 11:29     Символ новой строки в MFC #6
Напиши что у ТЕБЯ за переменная h тогда помогу, вообще вижу что это у тебя const char[3], чегобы её не заменить на char ну сделай буферную переменную и запехни в неё свой конст чар. Попробуй ещё так
C++
1
hist += (CString(h) + "\r\n");
Конешно если у тебя ещё и hist LPCTSTR то нефига не выйдет, толька использовать буферную переменну на лету сложить не выйдет
YurA_280784
Заблокирован
17.03.2009, 11:37     Символ новой строки в MFC #7
Чтоб не быть голословным кидаю свой проект (делал в MFC, весь код в функции
C++
1
void CTest13Dlg::OnOK()
).Короче открывай test13.dsw, запускай и жми ОК - всё по твоей формуле считается, сам погляди
Вложения
Тип файла: rar test13.rar (8.7 Кб, 33 просмотров)
Тип файла: rar test13.exe.rar (3.5 Кб, 19 просмотров)
YurA_280784
Заблокирован
17.03.2009, 11:39     Символ новой строки в MFC #8
C++
1
2
3
CString hist;
const char h[] = "123";
hist += (CString(h) + "\r\n");
Всё работает!...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2009, 13:03     Символ новой строки в MFC
Еще ссылки по теме:

Std::cin, символ новой строки C++
C++ Будет ли добавлен символ новой строки при ошибочном вводе?
Произвольный доступ в файл. Лишний символ новой стоки C++
C++ Отбрасывает ли std::cin символ новой строки?
C++ Цикл: каждый символ символьного массива вывести на новой строке консоли

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

Или воспользуйтесь поиском по форуму:
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
17.03.2009, 13:03  [ТС]     Символ новой строки в MFC #9
Переменная 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)", хотя твой проект компилируется без проблем.
Yandex
Объявления
17.03.2009, 13:03     Символ новой строки в MFC
Ответ Создать тему
Опции темы

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