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

Форматирование строк. cout - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сложение больших чисел (длинная арифметика) http://www.cyberforum.ru/cpp-beginners/thread814316.html
Есть две строки string с числами, не получается сделать их суммирование с помощь, не могу понять как сделать, помогите, пожалуйста. Вот, что я написал: #include <stdlib.h> #include <iostream> #include <string> using namespace std; class bigint {
C++ Запись в файл Сформировать файл "ЕXP.txt", содержащий сведения об экспорте товаров такого образца: наименование, страна, объем поставок и стоимость поставок. Переписать в файл "MaxExp.txt" названия стран, экспорт в которых превышает 10 наименований, и общую стоимость таких поставок. http://www.cyberforum.ru/cpp-beginners/thread814300.html
Через какое время корабль прибудет в порт назначения? C++
Подскажите пожалуйста Корабль должен преодолеть 3000 км. В первый день он прошел 200 км. Каждый следующий день он будет проходить на 5% больше, чем в предыдущий. Через какое время он прибудет в порт назначения?
C++ Удаление указателя на объект класса
Что-то ни как не могу разобраться, где у меня ошибка?! Ниже приведен фрагмент кода: //... shapes *ptr=0; //ptr - указатель базового типа, на объект производного класса (к примеру, ромба) //... ptr=new rhomb; //ромб - объект производного класса rhomb от базового класса shapes //... delete ptr; //удаление объекта (ромба) //...
C++ Сортировка масива методом выбора http://www.cyberforum.ru/cpp-beginners/thread814267.html
Подскажите пожалуйста, почему компилятор жалуется на мою 34 строку (где я переношу функцию в main). #include <iostream> using namespace std; template< class T > void selectSort(T* arr, int size) {
C++ Что такое многоразрядное число? (Создать класс ПАРА целых чисел) Объясните пожалуйста что такое многоразрядное число, и его старшая и младшая часть, если можно наведите пример. подробнее

Показать сообщение отдельно
GoldenId
 Аватар для GoldenId
45 / 43 / 2
Регистрация: 11.11.2010
Сообщений: 272
Завершенные тесты: 1
21.03.2013, 03:08     Форматирование строк. cout
Смотрите, andreyka_g, что говорит, alsav22
Цитата Сообщение от alsav22 Посмотреть сообщение
Способ хороший, но строка должна быть объектом класса string:
Он совершенно прав. И это был мой косяк. Какой смысл.

Если хотите разобраться, в чем был мой косяк, и какой из этого следует вывод, andreyka_g, вот я тут наворотил.
C++
1
2
#include <iostream.h>
#include <iomanip.h>
Эти файлы подключаются без расширения, как показал alsav22
C++
1
#include <iostream>

Не по теме:

И iomanip Вам, andreyka_g, в данном случае не нужен.



C++
1
#define S "Hello, world!"
здесь Вы создаете макрос с именем S со значением "Hello, world!" (вместе со кавычкам), который обрабатывается препроцессором и существует в течение предварительной обработки кода, до начала компиляции. Смысл этого в том, что когда препроцессор проходит Ваш код, каждый раз, когда он встречает упоминание S, он вставляет в это место то значение, которое запомнил из директивы #define, а именно "Hello, world!"

Так можно делать, так делалось и делается. Делось - много лет назад, делается - при написании низкоуровневого кода для аппаратуры и при обучении у засидевшихся на должности преподавателей
На практике, Вы видели (если не видели, покажу), что прогресс ушёл далеко вперед... хотя бы потому что это гораздо удобнее, а следовательно выше производительность труда, зарплата, успех у женщин.

Дальше эволюция пришла к варианту
C++
1
char *mystr = "Hello world!";
здесь Вы создаете указатель на строку "Hello, world!" (уже без кавычек), которая хранится в памяти на протяжении выполнения программы. В чем отличие? Например при таком определении содержимое строки S вы можете изменять в ходе выполнения программы:
C++
1
mystr[1] = 'a';
С
C++
1
S[1] = 'a';
так не получится, потому что компилятор получит на вход
C++
1
"Hello world!"[1] = 'a';

Не по теме:

Кроме того через строку

C++
1
const char *S = "Hello world!";
можно итерироваться... проходить по ней циклом.
А через
C++
1
#define S "Hello, world!"
нельзя итерироваться? Я вот с размаху хотел заявить, что нет, нельзя, однако у меня комплируется. Действительно, фактически здесь после препроцессора компилятор получает код
C++
1
2
for (int i = 0; i < 3; ++i)
     cout << "Hello, world!"[i];
что уж совсем нехорошо. Возможно, так можно сделать, когда не хочется заморачиваться, видимо, alsav22 это и имел в виду, но для целей обучения так делать не стоит совершенно.


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