Пространства имён
Варианты
Действия

std::endl

Материал из cppreference.com
< cpp‎ | io‎ | manip

 
 
Библиотеки ввода / вывода
I / O манипуляторов
C-стиль I / O
Буферы
Оригинал:
Buffers
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_streambuf
basic_filebuf
basic_stringbuf
strstreambuf(устарело)
Потоки
Оригинал:
Streams
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Абстракций
Оригинал:
Abstractions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
ios_base
basic_ios
basic_istream
basic_ostream
basic_iostream
Файл I / O
Оригинал:
File I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_ifstream
basic_ofstream
basic_fstream
Струнный I / O
Оригинал:
String I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_istringstream
basic_ostringstream
basic_stringstream
Массив I / O
Оригинал:
Array I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
istrstream(устарело)
ostrstream(устарело)
strstream(устарело)
Типы
Оригинал:
Types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
streamoff
streamsize
fpos
Интерфейс Ошибка категории
Оригинал:
Error category interface
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
iostream_category(C++11)
io_errc(C++11)
 
Вход / выход манипуляторов
Плавающей точкой форматирования
Оригинал:
Floating-point formatting
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Целое форматирования
Оригинал:
Integer formatting
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Булевы форматирования
Оригинал:
Boolean formatting
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
boolalpha
noboolalpha
Ширина полей и заполнения управления
Оригинал:
Field width and fill control
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Другие форматирования
Оригинал:
Other formatting
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Пробелы обработки
Оригинал:
Whitespace processing
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Выходные промывки
Оригинал:
Output flushing
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
flush
endl
Состояние флагов манипуляции
Оригинал:
Status flags manipulation
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Время и деньги I / O
Оригинал:
Time and money I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
get_money(C++11)
get_time(C++11)
put_money(C++11)
put_time(C++11)
 
Определено в заголовочном файле <ostream>
template< class CharT, class Traits >
std::basic_ostream<charT,traits>& endl( std::basic_ostream<CharT, Traits>& os );
Вставки лицевой линии характера в os выходной последовательности и сбрасывает его, как будто по телефону os.put(os.widen('\n')) следует os.flush().
Оригинал:
Inserts a endline character into the output sequence os and flushes it as if by calling os.put(os.widen('\n')) followed by os.flush().
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Это выход только для I / O манипулятора, его можно назвать с выражением таких как out << std::endl для любого типа out std::basic_ostream.
Оригинал:
This is an output-only I/O manipulator, it may be called with an expression such as out << std::endl for any out of type std::basic_ostream.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Заметки

Этот манипулятор может быть использован для производства строке вывода сразу, например, При отображении выход из длительный процесс, регистрации деятельности нескольких потоков или регистрации активности программ, которая может неожиданно завершиться. Явное краска std::cout также необходимо до вызова std::system, если порожденный процесс выполняет любой экран I / O (распространенным примером является std::system("pause") на Windows). В большинстве других обычных интерактивного ввода / вывода сценария, std::endl является избыточным при использовании std::cout потому что любой вклад std::cin, вывод на std::cerr, или завершение программы заставляет вызов std::cout.flush(). Использование std::endl на месте '\n', поощряемые некоторые источники, может значительно ухудшить производительность выход.
Оригинал:
This manipulator may be used to produce a line of output immediately, e.g. when displaying output from a long-running process, logging activity of multiple threads or logging activity of a program that may crash unexpectedly. An explicit flush of std::cout is also necessary before a call to std::system, if the spawned process performs any screen I/O (a common example is std::system("pause") on Windows). In most other usual interactive I/O scenarios, std::endl is redundant when used with std::cout because any input from std::cin, output to std::cerr, or program termination forces a call to std::cout.flush(). Use of std::endl in place of '\n', encouraged by some sources, may significantly degrade output performance.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Во многих реализациях, стандартный выход линии буферизацией и письма '\n' вызывает флеш любом случае, если std::cout.sync_with_stdio(false) был казнен. В тех ситуациях, ненужных endl только снижает производительность выходного файла, а не стандартный вывод.
Оригинал:
In many implementations, standard output is line-buffered, and writing '\n' causes a flush anyway, unless std::cout.sync_with_stdio(false) was executed. In those situations, unnecessary endl only degrades the performance of file output, not standard output.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Примеры кода на этой вики follow Bjarne Stroustrup в промывке стандартный вывод только там, где необходимо.
Оригинал:
The code samples on this wiki follow Bjarne Stroustrup in flushing the standard output only where necessary.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
При неполном строка вывода должна быть промыта, std::flush манипулятор может быть использован.
Оригинал:
When an incomplete line of output needs to be flushed, the std::flush manipulator may be used.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Когда каждый символ выходе должна быть промыта, std::unitbuf манипулятор может быть использован.
Оригинал:
When every character of output needs to be flushed, the std::unitbuf manipulator may be used.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Параметры

os -
ссылка на исходящий поток
Оригинал:
reference to output stream
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Возвращаемое значение

os (ссылка на поток после манипуляций)
Оригинал:
os (reference to the stream after manipulation)
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Пример

С \ п вместо епсИ, результат будет тот же, но может не отображаться в режиме реального времени .
Оригинал:
With \n instead of endl, the output would be the same, but may not appear in real time.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

#include <iostream>
#include <chrono>
template<typename Diff>
void log_progress(Diff d)
{
    std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(d).count()
              << " ms passed" << std::endl;
}
int main()
{
    std::cout.sync_with_stdio(false); // on some platforms, stdout flushes on \n
    volatile int sink=0;
 
    auto t1 = std::chrono::high_resolution_clock::now();
    for(int j=0; j<5; ++j)
    {
        for(int n=0; n<10000; ++n)
            for(int m=0; m<20000; ++m)
                sink += m*n; // do some work
        auto now = std::chrono::high_resolution_clock::now();
        log_progress(now - t1);
    }
}

Вывод:

487 ms passed
974 ms passed
1470 ms passed
1965 ms passed
2455 ms passed

[править] См. также

определяет, будет ли вывод сбрасывается после каждой операции
Оригинал:
controls whether output is flushed after each operation
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [edit]
очищает выходной поток
Оригинал:
flushes the output stream
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон функции) [edit]
синхронизируется с основным устройством хранения
Оригинал:
synchronizes with the underlying storage device
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-член std::basic_ostream) [edit]