logo

C++ Manipulator endl

C++ manipulator endl funksjonen brukes til å sette inn et nytt linjetegn og tømme strømmen.

Arbeidet med endl-manipulatoren ligner på ' '-tegn i C++. Den skriver ut resultatet av følgende setning i neste linje.

Syntaks

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

Parameter

du : Utgangsstrømobjekt påvirket.

Returverdi

Det returnerer argument du .

Dataløp

Endrer strømobjektets os.

Hvis vi prøver å få samtidig tilgang til det samme strømobjektet, kan det føre til dataløp, bortsett fra standard strømobjektene cerr, cout, wcout, clog, wcerr og wclog når disse er synkronisert med stdio.

Unntak Sikkerhet

Gjenstand du er i en gyldig tilstand, hvis det blir gjort unntak.

Eksempel 1

La oss se det enkle eksemplet for å demonstrere bruken av endl:

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

Produksjon:

 Hello World! 

Eksempel 2

La oss se et annet enkelt eksempel:

 #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>

Eksempel 3

La oss se et annet enkelt eksempel:

 #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; } 

Produksjon:

 100 3.14 314 

Eksempel 4

La oss se et annet enkelt eksempel:

 #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;>