Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2012, 14:33   #1
xNеo
Пользователь
 
Регистрация: 03.06.2011
Сообщений: 15
По умолчанию [C++] Обработка строк

Здравствуйте.

Нужно написать маленькое консольное приложение Win32, которое бы дописывало одну строку в конец другой. Как это можно сделать?
xNеo вне форума Ответить с цитированием
Старый 02.01.2012, 15:14   #2
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от xNеo Посмотреть сообщение
которое бы дописывало одну строку в конец другой. Как это можно сделать?
С помощью функции strcat к примеру.
zotox вне форума Ответить с цитированием
Старый 02.01.2012, 15:23   #3
xNеo
Пользователь
 
Регистрация: 03.06.2011
Сообщений: 15
По умолчанию

Не знаком с ней. Несколько раз слышал, но не сталкивался.
Хотелось бы увидеть пример решения моей задачи.
xNеo вне форума Ответить с цитированием
Старый 02.01.2012, 23:43   #4
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от xNеo Посмотреть сообщение
бы дописывало одну строку в конец другой. Как это можно сделать?
Код:
#include <iostream>
#include <string>

using namespace std;

int main()
{
	cout << "Enter a string: ";
	string str;
	getline(cin, str);

	cout << "Enter an addition: ";
	string addition;
	getline(cin, addition);

	str += addition;

	cout << "Result: " << str << endl;
	cin.get();
}
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 03.01.2012, 15:12   #5
xNеo
Пользователь
 
Регистрация: 03.06.2011
Сообщений: 15
По умолчанию

Большое спасибо.

Также, добавление библиотеки «stdafx.h» решило проблему.
xNеo вне форума Ответить с цитированием
Старый 03.01.2012, 15:14   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Сtrl
А ноль кто будет возвращать? Да от cin.get() толку здесь нет, ранее стоит endl, консоль сразу закроется.
_-Re@l-_ вне форума Ответить с цитированием
Старый 03.01.2012, 15:19   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
А ноль кто будет возвращать?
вы на каком стандарте С++ живете?
уже давно не обязательно.
Цитата:
Да от cin.get() толку здесь нет, ранее стоит endl, консоль сразу закроется.
вообще то дело не в endl, а в самом cin, то что был ввод.
и помоему getline это учитывает.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 15:26   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
вы на каком стандарте С++ живете?
уже давно не обязательно.
Хах, а меня без него MinGW отправляет куда подальше, особенно если включить поддержку С++0x.
Да даже если и можно, то это всё равно что программу на Паскале не завершать end'ом с точкой. Некрасиво. И глупо.
Цитата:
вообще то дело не в endl, а в самом cin, то что был ввод.
и помоему getline это учитывает.
Да нет, дело как раз в endl. cin.get() учтёт символ перехода строки как за символ, который нажал юзер и завершит свою работу.

Последний раз редактировалось _-Re@l-_; 03.01.2012 в 15:29.
_-Re@l-_ вне форума Ответить с цитированием
Старый 03.01.2012, 15:31   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Хах, а меня без него MinGW отправляет куда подальше, особенно если включить поддержку С++0x.
меня ни студия ни MinGW(вчера обновлял) ни посылают.
Цитата:
Да нет, дело как раз в endl. cin.get() учтёт символ перехода строки как за символ, который нажал юзер и завершит свою работу.
не, вообще то входной буфер и выходной это разные вещи.
просто обычно остается символ (код 10, 13-ый учитывается и на нем финиш) от ввода.

и как я сказал, getline это учитывает, делая cin.ignore() после ввода строки.(для очищения 10-ки)
Цитата:
Да даже если и можно, то это всё равно что программу на Паскале не завершать end'ом с точкой.
как раз таки } в main делает return 0;
то же делает end с точкой.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 15:49   #10
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
и как я сказал, getline это учитывает, делая cin.ignore() после ввода строки.(для очищения 10-ки)
Может, getline и учитывает, да причём только он? Вот же..
Код:
cout << "Result: " << str << endl;
cin.get();
endl прямо перед get. тут явно get 13 символ возьмёт, и всё.
Цитата:
как раз таки } в main делает return 0;
то же делает end с точкой.
Да я не про то. Вы меня не поняли. Я про то, что без return 0 функция main() выглядит как УГ. Не могу смотреть. Некрасиво.
Цитата:
не, вообще то входной буфер и выходной это разные вещи.
Ну это понятно.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка Строк katya_bush Паскаль, Turbo Pascal, PascalABC.NET 4 14.11.2011 21:50
Обработка строк Malyshka Microsoft Office Excel 10 26.12.2010 23:57
Обработка строк Тигран001 Помощь студентам 2 24.04.2010 10:32
Обработка строк Bytas Общие вопросы C/C++ 3 02.12.2009 10:35