logo

C++ Manipulator eindel

C++ manipulator eindel functie wordt gebruikt om een ​​nieuw regelteken in te voegen en de stream leeg te maken.

kat timpf gewicht

De werking van de endl-manipulator is vergelijkbaar met het teken ' ' in C++. Het drukt de uitvoer van de volgende instructie op de volgende regel af.

Syntaxis

 for ostream ostream& endl (ostream& os); basic template template basic_ostream& endl (basic_ostream& os); 

Parameter

Jij : uitvoerstroomobject beïnvloed.

Winstwaarde

Het geeft argument terug Jij .

Dataraces

Wijzigt het streamobject os.

Als we proberen gelijktijdig toegang te krijgen tot hetzelfde streamobject, kan dit dataraces veroorzaken, behalve de standaard streamobjecten cerr, cout, wcout, clog, wcerr en wclog wanneer deze worden gesynchroniseerd met stdio.

Uitzondering Veiligheid

Voorwerp Jij zich in een geldige status bevindt, als er een uitzondering optreedt.

voorbeeld 1

Laten we het eenvoudige voorbeeld bekijken om het gebruik van endl te demonstreren:

 #include using namespace std; int main() { cout << 'Hello' << endl << 'World!'; return 0; } 

Uitgang:

 Hello World! 

Voorbeeld 2

Laten we nog een eenvoudig voorbeeld bekijken:

 #include using namespace std; int main() { int num; cout&lt;&gt;num; cout&lt;<'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&apos;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 &lt;&lt; a; cout &lt;&lt; endl; // manipulator inserted alone cout &lt;&lt; b &lt;&lt; endl &lt;&lt; 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&apos;s see another simple example:</p> <pre> #include #include using namespace std; template void log_progress(Diff d) { cout &lt;&lt; chrono::duration_cast(d).count() &lt;&lt; &apos; ms passed&apos; &lt;&lt; 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>

Voorbeeld 3

Laten we nog een eenvoudig voorbeeld bekijken:

 #include // std::cout, std::end using namespace std; int main () { int a=100; double b=3.14; cout &lt;&lt; a; cout &lt;&lt; endl; // manipulator inserted alone cout &lt;&lt; b &lt;&lt; endl &lt;&lt; a*b; // manipulator in concatenated insertion endl (cout); // endl called as a regular function return 0; } 

Uitgang:

 100 3.14 314 

Voorbeeld 4

Laten we nog een eenvoudig voorbeeld bekijken:

 #include #include using namespace std; template void log_progress(Diff d) { cout &lt;&lt; chrono::duration_cast(d).count() &lt;&lt; &apos; ms passed&apos; &lt;&lt; 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;>