В чем разница при отображении данных в c ++ с использованием оператора вставки (<<) и функции «запись»? - PullRequest
0 голосов
/ 24 мая 2018

Я обнаружил, что оба делают то же самое для вывода

1- оператор вставки (<<) </p>

cout<<"ahmed";

2- с использованием функции записи объекта cout из класса ostream

cout.writr("ahmed" , 5);

но я не знаю, есть ли скрытая разница, которую я не могу осознать

Может ли кто-нибудь ответить мне на это?

заранее спасибо

1 Ответ

0 голосов
/ 24 мая 2018

1- оператор вставки (<<) будет печатать до тех пор, пока не встретит '\ 0'. </p>

2- при использовании функции write объекта cout из класса ostream будет напечатано достаточно char, даже если он соответствует '\0 'или за границу.

#include <iostream>
using namespace std;
int main()
{
    const char *str1="abc\0def";
    const char *str2="ghi";
    cout<<str1<<endl;
    cout<<"------------\n";
    cout.write(str1,7);
    cout<<"\n------------\n";
    cout.write(str1,7+3);
}


result:
abc
------------
abcdef
------------
abcdefgh
...