Кінець маніпулятора C++ функція використовується для вставки символу нового рядка та очищення потоку.
Робота маніпулятора endl подібна до символу ' ' у C++. У наступному рядку він друкує результат наступного оператора.
Синтаксис
for ostream ostream& endl (ostream& os); basic template template basic_ostream& endl (basic_ostream& os);
Параметр
ви : Постраждалий об’єкт вихідного потоку.
Повернене значення
Він повертає аргумент ви .
Перегони даних
Змінює об'єкт потоку os.
Якщо ми спробуємо отримати одночасний доступ до того самого потокового об’єкта, це може спричинити перегони даних, за винятком стандартних потокових об’єктів cerr, cout, wcout, clog, wcerr і wclog, коли вони синхронізовані зі stdio.
Безпека винятків
Об'єкт ви знаходиться в дійсному стані, якщо викинуто будь-який виняток.
Приклад 1
Давайте розглянемо простий приклад, щоб продемонструвати використання endl:
#include using namespace std; int main() { cout << 'Hello' << endl << 'World!'; return 0; }
Вихід:
Hello World!
Приклад 2
Давайте розглянемо ще один простий приклад:
#include using namespace std; int main() { int num; cout<>num; cout<<'hello roll number '<<num<<endl; cout<<'welcome to your new class!!'; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Enter your roll number: 22 Hello roll number 22 Welcome to your new class!! </pre> <h2>Example 3</h2> <p>Let's see another simple example:</p> <pre> #include // std::cout, std::end using namespace std; int main () { int a=100; double b=3.14; cout << a; cout << endl; // manipulator inserted alone cout << b << endl << a*b; // manipulator in concatenated insertion endl (cout); // endl called as a regular function return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> 100 3.14 314 </pre> <h2>Example 4</h2> <p>Let's see another simple example:</p> <pre> #include #include using namespace std; template void log_progress(Diff d) { cout << chrono::duration_cast(d).count() << ' ms passed' << endl; } int main() { cout.sync_with_stdio(false); // on some platforms, stdout flushes on volatile int sink = 0; auto t1 = chrono::high_resolution_clock::now(); for (int j=0; j<5; ++j) { for (int n="0;" n<10000; ++n) m="0;" m<20000; ++m) sink +="m*n;" do some work auto now="chrono::high_resolution_clock::now();" log_progress(now - t1); } return 0; < pre> <p> <strong>Output:</strong> </p> <pre> 435 ms passed 894 ms passed 1326 ms passed 1747 ms passed 2178 ms passed </pre></5;></pre></'hello>
Приклад 3
Давайте розглянемо ще один простий приклад:
#include // std::cout, std::end using namespace std; int main () { int a=100; double b=3.14; cout << a; cout << endl; // manipulator inserted alone cout << b << endl << a*b; // manipulator in concatenated insertion endl (cout); // endl called as a regular function return 0; }
Вихід:
100 3.14 314
Приклад 4
Давайте розглянемо ще один простий приклад:
#include #include using namespace std; template void log_progress(Diff d) { cout << chrono::duration_cast(d).count() << ' ms passed' << endl; } int main() { cout.sync_with_stdio(false); // on some platforms, stdout flushes on volatile int sink = 0; auto t1 = chrono::high_resolution_clock::now(); for (int j=0; j<5; ++j) { for (int n="0;" n<10000; ++n) m="0;" m<20000; ++m) sink +="m*n;" do some work auto now="chrono::high_resolution_clock::now();" log_progress(now - t1); } return 0; < pre> <p> <strong>Output:</strong> </p> <pre> 435 ms passed 894 ms passed 1326 ms passed 1747 ms passed 2178 ms passed </pre></5;>5;>'hello>