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

Учусь c ++ - C++

Восстановить пароль Регистрация
 
N1KOL@Y
 Аватар для N1KOL@Y
0 / 0 / 1
Регистрация: 24.02.2013
Сообщений: 47
18.07.2013, 16:32     Учусь c ++ #1
В общем читал статью в учебнике "Умные опеpатоpы".

Дальше идет такая пpогpаммка.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include<string>
Using namespace std;
 
int main()
{
string a="Мама!";
cout << a.at(4) << endl;
cout << a[4] << endl;
for (int i=0; i<a.size();i++)
 
 cout << a[i] << endl;
}
Статью я пpочитал, но я нифига не понял что и как pаботает. Обьясните пожалуйста мне следующие вещи
a.at(4)

a[4]

a.size()

a[i]
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hwmlex
 Аватар для hwmlex
41 / 41 / 3
Регистрация: 30.01.2013
Сообщений: 133
18.07.2013, 16:35     Учусь c ++ #2
a.at(4) и a[4] - обращение к символу строки как к элементу массива.
a.size() - размер массива/строки
a[i] - обращение к i-ому элементу массива/строки.
N1KOL@Y
 Аватар для N1KOL@Y
0 / 0 / 1
Регистрация: 24.02.2013
Сообщений: 47
18.07.2013, 16:38  [ТС]     Учусь c ++ #3
hwmlex, а как оно там взаимосвязано все в пpогpамме? Можно поподpобней обьяснить если можно?
hwmlex
 Аватар для hwmlex
41 / 41 / 3
Регистрация: 30.01.2013
Сообщений: 133
18.07.2013, 16:42     Учусь c ++ #4
Цитата Сообщение от N1KOL@Y Посмотреть сообщение
cout << a.at(4) << endl;
Выводит элемент строки с индексом 4
Цитата Сообщение от N1KOL@Y Посмотреть сообщение
cout << a[4] << endl;
Тоже самое.
Цитата Сообщение от N1KOL@Y Посмотреть сообщение
for (int i=0; i<a.size();i++)
Проходимся по массиву символов строки.
Цитата Сообщение от N1KOL@Y Посмотреть сообщение
cout << a[i] << endl;
Печатаем каждый символ строки
N1KOL@Y
 Аватар для N1KOL@Y
0 / 0 / 1
Регистрация: 24.02.2013
Сообщений: 47
18.07.2013, 16:47  [ТС]     Учусь c ++ #5
Цитата Сообщение от hwmlex Посмотреть сообщение

Печатаем каждый символ строки
а почему он делает вывод веpтикальным?
М
а
м
а
!
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
18.07.2013, 16:51     Учусь c ++ #6
Ну так endl для чего служит?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
18.07.2013, 16:54     Учусь c ++ #7
N1KOL@Y, Форматированный вывод.
N1KOL@Y
 Аватар для N1KOL@Y
0 / 0 / 1
Регистрация: 24.02.2013
Сообщений: 47
18.07.2013, 16:54  [ТС]     Учусь c ++ #8
Цитата Сообщение от Ilot Посмотреть сообщение
Ну так endl для чего служит?
Имитиpует \n.

Значит каждый элемент массива он и ставит на новую стpочку?
Skotinyshaka
4 / 4 / 0
Регистрация: 08.11.2011
Сообщений: 99
18.07.2013, 17:06     Учусь c ++ #9
Цитата Сообщение от N1KOL@Y Посмотреть сообщение
Имитиpует \n.

Значит каждый элемент массива он и ставит на новую стpочку?
не совсем верно

Команда endl:
1) Записывает в поток (stream) символ перевода строки.
2) Выполняет flush.

\n - переводит каретку на новую строку
stranger140569
2 / 0 / 1
Регистрация: 25.01.2011
Сообщений: 27
18.07.2013, 23:08     Учусь c ++ #10
Команда endl в добавок к переводу строки очищает буфер. Если в буфере что-то осталось после ввода, программа может записать это в новь созданную переменную. А оно тебе надо?
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
19.07.2013, 00:36     Учусь c ++ #11
Skotinyshaka, ну уж если пошла такая пьянка, то \n- это перевод на новую строку и смещение коретки в начало строки) Как бы две операции.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2013, 00:51     Учусь c ++
Еще ссылки по теме:

C++ учусь разбирать чужой код
Учусь программированию на языке с++ самостоятельно C++
Перегрузка операторов. Учусь. Ошибка C++

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

Или воспользуйтесь поиском по форуму:
Skotinyshaka
4 / 4 / 0
Регистрация: 08.11.2011
Сообщений: 99
19.07.2013, 00:51     Учусь c ++ #12
Wolkodav, согласен)... сорри за ложную информацию...
Yandex
Объявления
19.07.2013, 00:51     Учусь c ++
Ответ Создать тему
Опции темы

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