Вторник, 26 Ноября 2024, 08:26

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Использование << и >> операторов ?
BoДата: Вторник, 21 Марта 2017, 23:15 | Сообщение # 1
почетный гость
Сейчас нет на сайте
почему для использования
Код
cout << "текст"
достаточно использовать #include <iostream>
и при этом вариант
Код
cin >> "текст"
уже требует подключения #include string (класс с методами и переменными для организации работы со строками)
и это при том, что код где есть вот такое приведение типов:

Код
constexpr PLAYER_NUMBER = 5;
cout << "Текст: " <<PLAYER_NUMBER;


будет работать без обращение к string, хотя выполняется без всякого там, к примеру

Код
#include <string>
std::string x = std::to_string(PLAYER_NUMBER);
cout << "Текст:  " <<x;


Сообщение отредактировал Bo - Вторник, 21 Марта 2017, 23:26
DarkShadeДата: Среда, 22 Марта 2017, 09:15 | Сообщение # 2
Повелитель стихий
Сейчас нет на сайте
Изначально, в С++ не реализован отдельный тип для строк. Обычно для этого используют массив char'ов. Либо, подключают файл <string>, который и содержит тип string. Все строковые константы по типу являются const char*, поэтому и не требуют подключения <string>.

Мой блог
BoДата: Среда, 22 Марта 2017, 14:16 | Сообщение # 3
почетный гость
Сейчас нет на сайте
DarkShade, спасибо, но меня еще вот что интересует.
Почему возможно неявное преобразование типа

Код
constexpr PLAYER_NUMBER = 5;
cout << "Текст: " <<PLAYER_NUMBER;
linuxДата: Понедельник, 31 Июля 2017, 22:23 | Сообщение # 4
частый гость
Сейчас нет на сайте
Цитата Bo ()
cin >> "текст"

Это вообще что такое?

Я обычно использовал, cin для ввода, а тут для чего?

Надо как то так
Код

#include <iostream>

using namespace std;

int main()
{
    char t[80];
    cin >> t;
    cout << "вы напечатали: " << t << endl;
    return 0;
}
giperionДата: Четверг, 03 Августа 2017, 12:25 | Сообщение # 5
участник
Сейчас нет на сайте
Цитата Bo ()
достаточно использовать #include <iostream>
и при этом вариант
Код

cin >> "текст"

уже требует подключения #include string (класс с методами и переменными для организации работы со строками)


Вот нифига, у меня компилится этот вариант:
Код
#include <iostream>

int main()
{
    char* Str = nullptr;
    std::cin >> Str;
    return 0;
}


По крайней мере для VS2017 WinSDK: 10.0.15063 это корректный код.

Цитата Bo ()
и это при том, что код где есть вот такое приведение типов:

Код

constexpr PLAYER_NUMBER = 5;
cout << "Текст: " <<PLAYER_NUMBER;

будет работать без обращение к string

Никакого приведения типов тут нету, у тебя constexpr, он отрабатывает на стадий компиляции. Это как #define только в другой форме.


Skype: sergej_1965
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг