Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.82
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
#1

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

17.03.2009, 02:35. Просмотров 3685. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2009, 02:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Символ новой строки в MFC (C++):

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

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

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

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

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

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

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

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

Функция getline считывает несколько строк из файла, игнорируя символ новой строки - C++
Всем доброго дня! В С++ я новичок, сам себе придумываю задачки, просто для тренировки. Столкнулся с непонятным для меня поведением...

Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» - C++
День добрый. Имеется условие лабы. Написать программу, в которой с клавиатуры вводится до 10 символьных строк. Вывести строки, в...

Каждый символ строки заменить на следующий за ним, а последний символ строки заменяеть первым - C++
я написал код но не могу разобраться. вот дано : ---------------------------------------------------------- В текстовом файле fin.txt...


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

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

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