QTextStream Class

QTextStream 클래스는 텍스트 읽기 및 쓰기를 위한 편리한 인터페이스를 제공합니다. 더 보기...

Header: #include <QTextStream>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
상속합니다: QIODeviceBase

참고: 이 클래스의 모든 함수는 재진입합니다.

공용 유형

enum FieldAlignment { AlignLeft, AlignRight, AlignCenter, AlignAccountingStyle }
enum NumberFlag { ShowBase, ForcePoint, ForceSign, UppercaseBase, UppercaseDigits }
flags NumberFlags
enum RealNumberNotation { ScientificNotation, FixedNotation, SmartNotation }
enum Status { Ok, ReadPastEnd, ReadCorruptData, WriteFailed }

공용 함수

QTextStream()
QTextStream(QIODevice *device)
QTextStream(FILE *fileHandle, QIODeviceBase::OpenMode openMode = ReadWrite)
QTextStream(QByteArray *array, QIODeviceBase::OpenMode openMode = ReadWrite)
QTextStream(QString *string, QIODeviceBase::OpenMode openMode = ReadWrite)
QTextStream(const QByteArray &array, QIODeviceBase::OpenMode openMode = ReadOnly)
virtual ~QTextStream()
bool atEnd() const
bool autoDetectUnicode() const
QIODevice *device() const
QStringConverter::Encoding encoding() const
QTextStream::FieldAlignment fieldAlignment() const
int fieldWidth() const
void flush()
bool generateByteOrderMark() const
int integerBase() const
QLocale locale() const
QTextStream::NumberFlags numberFlags() const
QChar padChar() const
qint64 pos() const
QString read(qint64 maxlen)
QString readAll()
QString readLine(qint64 maxlen = 0)
bool readLineInto(QString *line, qint64 maxlen = 0)
QTextStream::RealNumberNotation realNumberNotation() const
int realNumberPrecision() const
void reset()
void resetStatus()
bool seek(qint64 pos)
void setAutoDetectUnicode(bool enabled)
void setDevice(QIODevice *device)
void setEncoding(QStringConverter::Encoding encoding)
void setFieldAlignment(QTextStream::FieldAlignment mode)
void setFieldWidth(int width)
void setGenerateByteOrderMark(bool generate)
void setIntegerBase(int base)
void setLocale(const QLocale &locale)
void setNumberFlags(QTextStream::NumberFlags flags)
void setPadChar(QChar ch)
void setRealNumberNotation(QTextStream::RealNumberNotation notation)
void setRealNumberPrecision(int precision)
void setStatus(QTextStream::Status status)
void setString(QString *string, QIODeviceBase::OpenMode openMode = ReadWrite)
void skipWhiteSpace()
QTextStream::Status status() const
QString *string() const
QTextStream &operator<<(QChar c)
QTextStream &operator<<(const QString &string)
QTextStream &operator<<(float f)
QTextStream &operator<<(short i)
QTextStream &operator<<(QLatin1StringView string)
QTextStream &operator<<(QStringView string)
QTextStream &operator<<(char c)
(since 6.3.1) QTextStream &operator<<(char16_t c)
QTextStream &operator<<(const QByteArray &array)
QTextStream &operator<<(const char *string)
QTextStream &operator<<(const void *ptr)
QTextStream &operator<<(double f)
QTextStream &operator<<(int i)
QTextStream &operator<<(long i)
QTextStream &operator<<(qlonglong i)
QTextStream &operator<<(qulonglong i)
QTextStream &operator<<(unsigned int i)
QTextStream &operator<<(unsigned long i)
QTextStream &operator<<(unsigned short i)
QTextStream &operator>>(QChar &c)
QTextStream &operator>>(QString &str)
QTextStream &operator>>(float &f)
QTextStream &operator>>(short &i)
QTextStream &operator>>(QByteArray &array)
QTextStream &operator>>(char &c)
QTextStream &operator>>(char *c)
(since 6.4) QTextStream &operator>>(char16_t &c)
QTextStream &operator>>(double &f)
QTextStream &operator>>(int &i)
QTextStream &operator>>(long &i)
QTextStream &operator>>(qlonglong &i)
QTextStream &operator>>(qulonglong &i)
QTextStream &operator>>(unsigned int &i)
QTextStream &operator>>(unsigned long &i)
QTextStream &operator>>(unsigned short &i)
QTextStreamManipulator qSetFieldWidth(int width)
QTextStreamManipulator qSetPadChar(QChar ch)
QTextStreamManipulator qSetRealNumberPrecision(int precision)

상세 설명

QTextStream은 QIODevice, QByteArray 또는 QString 에서 작동할 수 있습니다. QTextStream의 스트리밍 연산자를 사용하면 단어, 줄, 숫자를 편리하게 읽고 쓸 수 있습니다. 텍스트 생성을 위해 QTextStream은 필드 패딩 및 정렬, 숫자 서식을 위한 서식 지정 옵션을 지원합니다. 예시:

QFile data("output.txt");
if (data.open(QFile::WriteOnly | QFile::Truncate)) {
    QTextStream out(&data);
    out << "Result: " << qSetFieldWidth(10) << left << 3.14 << 2.7;
    // writes "Result: 3.14      2.7       "
}

콘솔 입력을 읽고 콘솔 출력을 쓰기 위해 QTextStream을 사용하는 것도 일반적입니다. QTextStream은 로캘을 인식하며 올바른 인코딩을 사용하여 표준 입력을 자동으로 디코딩합니다. 예시:

QTextStream stream(stdin);
QString line;
while (stream.readLineInto(&line)) {
    ...
}

QTextStream의 생성자를 사용하는 것 외에도 setDevice() 또는 setString()을 호출하여 QTextStream이 작동하는 장치 또는 문자열을 설정할 수도 있습니다. seek ()를 호출하여 위치를 찾을 수 있으며, atEnd()은 읽을 데이터가 남아 있지 않으면 참을 반환합니다. flush ()를 호출하면 QTextStream은 쓰기 버퍼의 모든 데이터를 장치로 비우고 장치에서 flush()를 호출합니다.

내부적으로 QTextStream은 유니코드 기반 버퍼를 사용하며, QStringConverter 은 다른 인코딩을 자동으로 지원하기 위해 QTextStream에서 사용됩니다. 기본적으로 읽기 및 쓰기에는 UTF-8이 사용되지만 setEncoding()를 호출하여 인코딩을 설정할 수도 있습니다. 자동 유니코드 감지 기능도 지원됩니다. 이 기능이 활성화되면(기본 동작), QTextStream은 UTF-8, UTF-16 또는 UTF-32 BOM(바이트 순서 표시)을 감지하고 읽을 때 적절한 UTF 인코딩으로 전환합니다. QTextStream은 기본적으로 BOM을 작성하지 않지만 setGenerateByteOrderMark(true)를 호출하여 이를 활성화할 수 있습니다. QTextStream이 QString 에서 직접 작동하는 경우 인코딩이 비활성화됩니다.

텍스트 파일을 읽을 때 QTextStream을 사용하는 일반적인 방법은 세 가지가 있습니다:

  • readLine() 또는 readAll()을 호출하여 청크 단위로.
  • 단어 단위로. QTextStream은 QStrings, QByteArrays 및 char* 버퍼로의 스트리밍을 지원합니다. 단어는 공백으로 구분되며 선행 공백은 자동으로 건너뜁니다.
  • QChar 또는 문자 유형으로 스트리밍하여 문자 단위로 입력합니다. 이 방법은 문자 인코딩 및 줄 끝 의미와 관계없이 파일을 구문 분석할 때 편리한 입력 처리를 위해 자주 사용됩니다. 공백을 건너뛰려면 skipWhiteSpace()를 호출하세요.

텍스트 스트림은 버퍼를 사용하므로 슈퍼클래스의 구현을 사용하여 스트림에서 읽어서는 안 됩니다. 예를 들어 QFile 파일이 있는데 스트림을 사용하지 않고 QFile::readLine()를 사용하여 직접 읽으면 텍스트 스트림의 내부 위치가 파일 위치와 동기화되지 않게 됩니다.

기본적으로 텍스트 스트림에서 숫자를 읽을 때 QTextStream은 숫자의 기본 표현을 자동으로 감지합니다. 예를 들어, 숫자가 "0x"로 시작하면 16진수 형식인 것으로 간주합니다. 숫자 1~9로 시작하면 10진수 형식인 것으로 간주하는 식입니다. setIntegerBase ()를 호출하여 정수 기반을 설정하여 자동 감지를 비활성화할 수 있습니다. 예시:

QTextStream in("0x50 0x20");
int firstNumber, secondNumber;

in >> firstNumber;             // firstNumber == 80
in >> dec >> secondNumber;     // secondNumber == 0

char ch;
in >> ch;                      // ch == 'x'

QTextStream은 텍스트 생성을 위한 다양한 서식 지정 옵션을 지원합니다. setFieldWidth () 및 setPadChar()을 호출하여 필드 너비와 패드 문자를 설정할 수 있습니다. setFieldAlignment ()를 사용하여 각 필드 내의 정렬을 설정합니다. 실수의 경우 setRealNumberNotation() 및 setRealNumberPrecision()을 호출하여 표기법(SmartNotation, ScientificNotation, FixedNotation)과 생성된 숫자의 자릿수 정밀도를 설정합니다. setNumberFlags ()를 통해 몇 가지 추가 숫자 서식 옵션도 사용할 수 있습니다.

표준 C++ 라이브러리의 <iostream> 처럼, QTextStream도 여러 글로벌 조작자 함수를 정의합니다:

매니퓰레이터설명
Qt::binsetIntegerBase(2)와 동일합니다.
Qt::octsetIntegerBase(8)과 동일합니다.
Qt::decsetIntegerBase(10)과 동일합니다.
Qt::hexsetIntegerBase(16)과 동일합니다.
Qt::showbasesetNumberFlags(numberFlags() | ShowBase)와 동일합니다.
Qt::forcesignsetNumberFlags(numberFlags() | ForceSign)와 동일합니다.
Qt::forcepointsetNumberFlags(numberFlags() | ForcePoint)와 동일합니다.
Qt::noshowbasesetNumberFlags(numberFlags() & ~ShowBase)와 동일합니다.
Qt::noforcesignsetNumberFlags(numberFlags() & ~ForceSign)와 동일합니다.
Qt::noforcepointsetNumberFlags(numberFlags() & ~ForcePoint)와 동일합니다.
Qt::uppercasebasesetNumberFlags(numberFlags() | UppercaseBase)와 동일합니다.
Qt::uppercasedigitssetNumberFlags(numberFlags() | UppercaseDigits)와 동일합니다.
Qt::lowercasebasesetNumberFlags(numberFlags() & ~UppercaseBase)와 동일합니다.
Qt::lowercasedigitssetNumberFlags(numberFlags() & ~UppercaseDigits)와 동일합니다.
Qt::fixedsetRealNumberNotation(FixedNotation)와 동일합니다.
Qt::scientificsetRealNumberNotation 와 동일 (ScientificNotation).
Qt::leftsetFieldAlignment 과 동일 (AlignLeft).
Qt::rightsetFieldAlignment 과 동일 (AlignRight).
Qt::centersetFieldAlignment(AlignCenter)와 동일합니다.
Qt::endl연산자<<('\n') 및 flush()와 동일합니다.
Qt::flushflush()와 동일합니다.
Qt::resetreset()와 동일합니다.
Qt::wsskipWhiteSpace()와 동일합니다.
Qt::bomsetGenerateByteOrderMark(참)과 같음.

또한, Qt는 파라미터를 취하는 세 가지 전역 조작자를 제공합니다: qSetFieldWidth(), qSetPadChar(), qSetRealNumberPrecision().

QDataStream, QIODevice, QFile, QBuffer, QTcpSocket도 참조하십시오 .

멤버 유형 문서

enum QTextStream::FieldAlignment

이 열거 형은 필드가 필드를 차지하는 텍스트보다 넓은 경우 필드에서 텍스트를 정렬하는 방법을 지정합니다.

Constant설명
QTextStream::AlignLeft0필드의 오른쪽에 패드를 배치합니다.
QTextStream::AlignRight1필드의 왼쪽에 패드를 배치합니다.
QTextStream::AlignCenter2필드의 양쪽에 패드를 배치합니다.
QTextStream::AlignAccountingStyle3숫자의 부호가 왼쪽으로 정렬된다는 점을 제외하면 AlignRight와 동일합니다.

setFieldAlignment()도 참조하세요 .

열거형 QTextStream::NumberFlag
플래그 QTextStream::NumberFlags

이 열거형은 정수, floats 및 doubles의 출력에 영향을 미치도록 설정할 수 있는 다양한 플래그를 지정합니다.

Constant설명
QTextStream::ShowBase0x1기저가 16("0x"), 8("0") 또는 2("0b")인 경우 기저를 접두사로 표시합니다.
QTextStream::ForcePoint0x2소수점이 없는 경우에도 항상 숫자로 소수점 구분 기호를 입력합니다.
QTextStream::ForceSign0x4양수인 경우에도 항상 숫자에 기호를 넣습니다.
QTextStream::UppercaseBase0x8기본 접두사는 대문자 버전("0X", "0B")을 사용합니다.
QTextStream::UppercaseDigits0x1010부터 35까지의 숫자를 표현할 때는 소문자 대신 대문자를 사용합니다.

NumberFlags 타입은 QFlags<NumberFlag>에 대한 타입 정의입니다. NumberFlag 값의 OR 조합을 저장합니다.

setNumberFlags()도 참조하세요 .

enum QTextStream::RealNumberNotation

이 열거형은 floatdouble 을 문자열로 표현할 때 사용할 표기법을 지정합니다.

Constant설명
QTextStream::ScientificNotation2과학적 표기법(printf()%e 플래그).
QTextStream::FixedNotation1고정 소수점 표기법(printf()%f 플래그).
QTextStream::SmartNotation0과학적 표기법 또는 고정 소수점 표기법 중 가장 적합한 표기법(printf()%g 플래그).

setRealNumberNotation()도 참조하세요 .

enum QTextStream::Status

이 열거형은 텍스트 스트림의 현재 상태를 설명합니다.

Constant설명
QTextStream::Ok0텍스트 스트림이 정상적으로 작동 중입니다.
QTextStream::ReadPastEnd1텍스트 스트림이 기본 디바이스의 데이터 끝을 지나서 읽었습니다.
QTextStream::ReadCorruptData2텍스트 스트림이 손상된 데이터를 읽었습니다.
QTextStream::WriteFailed3텍스트 스트림이 기본 장치에 쓸 수 없습니다.

status()도 참조하세요 .

멤버 함수 문서

QTextStream::QTextStream()

QTextStream을 구축합니다. 읽기 또는 쓰기에 사용하려면 먼저 장치 또는 문자열을 할당해야 합니다.

setDevice() 및 setString()도 참조하세요 .

[explicit] QTextStream::QTextStream(QIODevice *device)

device 에서 작동하는 QTextStream을 구축합니다.

[explicit] QTextStream::QTextStream(FILE *fileHandle, QIODeviceBase::OpenMode openMode = ReadWrite)

openMode 을 사용하여 열기 모드를 정의하고 fileHandle 에서 작동하는 QTextStream을 구축합니다. 내부적으로 QFile 이 생성되어 FILE 포인터를 처리합니다.

이 생성자는 일반적인 FILE 기반 입력 및 출력 스트림인 stdin, stdout 및 stderr로 직접 작업할 때 유용합니다. 예시:

QString str;
QTextStream in(stdin);
in >> str;

[explicit] QTextStream::QTextStream(QByteArray *array, QIODeviceBase::OpenMode openMode = ReadWrite)

openMode 을 사용하여 개방 모드를 정의하는 array 에서 작동하는 QTextStream을 구축합니다. 내부적으로 배열은 QBuffer 로 래핑됩니다.

[explicit] QTextStream::QTextStream(QString *string, QIODeviceBase::OpenMode openMode = ReadWrite)

openMode 을 사용하여 개방 모드를 정의하고 string 에서 작동하는 QTextStream을 구축합니다.

[explicit] QTextStream::QTextStream(const QByteArray &array, QIODeviceBase::OpenMode openMode = ReadOnly)

openMode 을 사용하여 개방 모드를 정의하는 array 에서 작동하는 QTextStream을 구축합니다. 이 배열은 openMode 의 값에 관계없이 읽기 전용으로 액세스됩니다.

이 생성자는 상수 문자열 작업에 편리합니다. 예제:

int main(int argc, char *argv[])
{
    // read numeric arguments (123, 0x20, 4.5...)
    for (int i = 1; i < argc; ++i) {
          int number;
          QTextStream in(argv[i]);
          in >> number;
          ...
    }
}

[virtual noexcept] QTextStream::~QTextStream()

QTextStream 을 파괴합니다.

스트림이 디바이스에서 작동하는 경우 flush()가 암시적으로 호출됩니다. 그렇지 않으면 디바이스는 영향을 받지 않습니다.

bool QTextStream::atEnd() const

QTextStream 에서 읽을 데이터가 더 이상 없으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다. QTextStream 역시 내부 유니코드 버퍼를 고려하므로 QIODevice::atEnd()를 호출하는 것과 비슷하지만 동일하지는 않습니다.

bool QTextStream::autoDetectUnicode() const

자동 유니코드 감지가 활성화된 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다. 자동 유니코드 감지는 기본적으로 활성화되어 있습니다.

setAutoDetectUnicode() 및 setEncoding()도 참조하세요 .

QIODevice *QTextStream::device() const

QTextStream 에 연결된 현재 장치를 반환하거나 장치가 할당되지 않은 경우 nullptr 을 반환합니다.

setDevice() 및 string()도 참조하세요 .

QStringConverter::Encoding QTextStream::encoding() const

현재 스트림에 할당된 인코딩을 반환합니다.

setEncoding(), setAutoDetectUnicode() 및 locale()도 참조하세요 .

QTextStream::FieldAlignment QTextStream::fieldAlignment() const

현재 필드 정렬을 반환합니다.

setFieldAlignment() 및 fieldWidth()도 참조하세요 .

int QTextStream::fieldWidth() const

현재 필드 너비를 반환합니다.

setFieldWidth()도 참조하세요 .

void QTextStream::flush()

장치에 쓰기를 기다리는 모든 버퍼 데이터를 플러시합니다.

QTextStream 이 문자열에서 작동하는 경우 이 함수는 아무 작업도 수행하지 않습니다.

bool QTextStream::generateByteOrderMark() const

UTF 인코딩을 사용할 때 QTextStream 이 UTF BOM(바이트 순서 표시)을 생성하도록 설정된 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다. UTF BOM 생성은 기본적으로 false로 설정되어 있습니다.

setGenerateByteOrderMark()도 참조하세요 .

int QTextStream::integerBase() const

정수의 현재 기저를 반환합니다. 0은 읽을 때 기저가 감지되었음을 의미하며, 숫자를 생성할 때는 10(소수점)을 의미합니다.

setIntegerBase(), QString::number() 및 numberFlags()도 참조하세요 .

QLocale QTextStream::locale() const

이 스트림의 로캘을 반환합니다. 기본 로캘은 C입니다.

setLocale()도 참조하세요 .

QTextStream::NumberFlags QTextStream::numberFlags() const

현재 숫자 플래그를 반환합니다.

setNumberFlags(), integerBase() 및 realNumberNotation()도 참조하세요 .

QChar QTextStream::padChar() const

현재 패드 문자를 반환합니다.

setPadChar() 및 setFieldWidth()도 참조하세요 .

qint64 QTextStream::pos() const

스트림의 현재 위치에 해당하는 디바이스 위치를 반환하고, 오류가 발생하면 -1을 반환합니다(예: 디바이스나 문자열이 없거나 디바이스 오류가 있는 경우).

QTextStream 은 버퍼링되어 있으므로 이 함수는 유효한 디바이스 위치를 재구성하기 위해 디바이스를 찾아야 할 수 있습니다. 이 작업은 비용이 많이 들 수 있으므로 이 함수를 반복해서 호출하지 않는 것이 좋습니다.

seek()도 참조하세요 .

QString QTextStream::read(qint64 maxlen)

스트림에서 최대 maxlen 문자를 읽고 읽은 데이터를 QString 로 반환합니다.

readAll(), readLine() 및 QIODevice::read()도 참조하세요 .

QString QTextStream::readAll()

스트림의 전체 콘텐츠를 읽고 QString 로 반환합니다. 이 함수는 상당한 양의 메모리를 소모하므로 대용량 파일에서 작업할 때는 사용하지 마세요.

사용 가능한 데이터의 양을 모르는 경우에는 readLine()를 호출하는 것이 좋습니다.

readLine()도 참조하세요 .

QString QTextStream::readLine(qint64 maxlen = 0)

스트림에서 한 줄의 텍스트를 읽고 QString 로 반환합니다. 허용되는 최대 줄 길이는 maxlen 으로 설정됩니다. 스트림에 이보다 긴 줄이 포함되어 있으면 maxlen 문자 뒤에 줄이 분할되어 부분적으로 반환됩니다.

maxlen 이 0이면 줄의 길이는 얼마든지 가능합니다.

반환된 줄에는 줄 끝 문자("\n" 또는 "\r\n")가 없으므로 QString::trimmed()를 호출할 필요가 없습니다.

스트림이 파일 끝부분까지 읽은 경우 readLine()은 null QString 을 반환합니다. 문자열 또는 이를 지원하는 디바이스의 경우 atEnd()를 사용하여 스트림의 끝을 명시적으로 테스트할 수 있습니다.

readAll() 및 QIODevice::readLine()도 참조하세요 .

bool QTextStream::readLineInto(QString *line, qint64 maxlen = 0)

스트림에서 line 으로 한 줄의 텍스트를 읽습니다. linenullptr 인 경우 읽은 줄은 저장되지 않습니다.

허용되는 최대 줄 길이는 maxlen 으로 설정됩니다. 스트림에 이보다 긴 줄이 포함되어 있으면 maxlen 문자 뒤에 줄이 분할되어 부분적으로 반환됩니다.

maxlen 이 0이면 줄의 길이는 얼마든지 가능합니다.

결과 줄에는 줄 끝 문자("\n" 또는 "\r\n")가 없으므로 QString::trimmed()를 호출할 필요가 없습니다.

line 에 읽으려는 데이터 용량이 충분하다면 이 함수는 새 메모리를 할당할 필요가 없을 수 있습니다. 따라서 readLine()보다 빠를 수 있습니다.

스트림이 파일 끝까지 읽었거나 오류가 발생하면 false 을 반환하고, 그렇지 않으면 true 을 반환합니다. 어떤 경우든 호출 전 line 의 내용은 삭제됩니다.

readAll() 및 QIODevice::readLine()도 참조하세요 .

QTextStream::RealNumberNotation QTextStream::realNumberNotation() const

현재 실수 표기법을 반환합니다.

setRealNumberNotation(), realNumberPrecision(), numberFlags() 및 integerBase()도 참조하세요 .

int QTextStream::realNumberPrecision() const

현재 실수 정밀도 또는 실수(FixedNotation, ScientificNotation)를 생성할 때 QTextStream 가 쓰는 분수 자릿수 또는 최대 유효 자릿수(SmartNotation)를 반환합니다.

setRealNumberPrecision(), setRealNumberNotation(), realNumberNotation(), numberFlags() 및 integerBase()도 참조하세요 .

void QTextStream::reset()

QTextStream 의 서식 옵션을 재설정하여 원래 작성된 상태로 되돌립니다. 장치, 문자열 및 버퍼링된 데이터는 그대로 유지됩니다.

void QTextStream::resetStatus()

텍스트 스트림의 상태를 초기화합니다.

QTextStream::Status, status() 및 setStatus()도 참조하세요 .

bool QTextStream::seek(qint64 pos)

장치에서 pos 위치를 찾습니다. 성공하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

void QTextStream::setAutoDetectUnicode(bool enabled)

enabled 이 참이면 QTextStream 은 스트림 데이터를 들여다보면서 유니코드 인코딩을 감지하여 UTF-8, UTF-16 또는 UTF-32 바이트 순서 표시(BOM)를 찾을 수 있는지 확인하려고 시도합니다. 이 마크가 발견되면 QTextStream 이 현재 인코딩을 UTF 인코딩으로 바꿉니다.

이 기능은 setEncoding()와 함께 사용할 수 있습니다. 인코딩을 UTF-8로 설정한 다음 UTF-16 감지를 사용하도록 설정하는 것이 일반적입니다.

autoDetectUnicode() 및 setEncoding()도 참조하세요 .

void QTextStream::setDevice(QIODevice *device)

현재 디바이스를 device 로 설정합니다. 디바이스가 이미 할당된 경우 QTextStream 은 이전 디바이스가 교체되기 전에 flush()를 호출합니다.

참고: 이 함수는 로캘을 기본 로캘('C')로 재설정하고 인코딩을 기본 인코딩인 UTF-8로 재설정합니다.

device() 및 setString()도 참조하세요 .

void QTextStream::setEncoding(QStringConverter::Encoding encoding)

이 스트림의 인코딩을 encoding 으로 설정합니다. 이 인코딩은 할당된 디바이스에서 읽는 모든 데이터를 디코딩하고 쓰는 모든 데이터를 인코딩하는 데 사용됩니다. 기본적으로 QStringConverter::Utf8 이 사용되며 자동 유니코드 감지가 활성화됩니다.

QTextStream 이 문자열에 대해 작동하는 경우 이 함수는 아무 작업도 수행하지 않습니다.

경고: 텍스트 스트림이 열린 순차 소켓에서 읽는 동안 이 함수를 호출하면 내부 버퍼에 이전 인코딩을 사용하여 디코딩된 텍스트가 여전히 포함될 수 있습니다.

encoding(), setAutoDetectUnicode() 및 setLocale()도 참조하세요 .

void QTextStream::setFieldAlignment(QTextStream::FieldAlignment mode)

필드 맞춤을 mode 으로 설정합니다. setFieldWidth()과 함께 사용하면 텍스트가 왼쪽, 오른쪽 또는 가운데로 정렬된 형식의 출력을 생성할 수 있습니다.

fieldAlignment() 및 setFieldWidth()도 참조하세요 .

void QTextStream::setFieldWidth(int width)

현재 필드 너비를 width 로 설정합니다. width 이 0(기본값)인 경우 필드 너비는 생성된 텍스트의 길이와 같습니다.

참고: 필드 너비는 이 함수가 호출된 후 이 스트림에 추가된 모든 요소에 적용됩니다(예: endl도 패딩). 이 동작은 필드 너비가 다음 요소에만 적용되는 STL의 유사한 클래스와는 다릅니다.

fieldWidth() 및 setPadChar()도 참조하세요 .

void QTextStream::setGenerateByteOrderMark(bool generate)

generate 이 참이고 UTF 인코딩이 사용되는 경우 QTextStream 은 데이터가 장치에 기록되기 전에 BOM(바이트 순서 표시)을 삽입합니다. generate 이 거짓이면 BOM이 삽입되지 않습니다. 이 함수는 데이터를 쓰기 전에 반드시 호출해야 합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.

generateByteOrderMark() 및 bom()도 참조하세요 .

void QTextStream::setIntegerBase(int base)

읽기 및 숫자 생성을 위해 정수의 기저를 base 로 설정합니다. base 은 2(이진), 8(8진수), 10(10진수) 또는 16(16진수) 중 하나 일 수 있습니다. base 이 0이면 QTextStream 은 스트림의 데이터를 검사하여 기저를 감지하려고 시도합니다. 숫자를 생성할 때 QTextStream 는 자릿수가 명시적으로 설정되지 않은 경우 10으로 가정합니다.

integerBase(), QString::number() 및 setNumberFlags()도 참조하세요 .

void QTextStream::setLocale(const QLocale &locale)

이 스트림의 로캘을 locale 로 설정합니다. 지정된 로캘은 숫자와 해당 문자열 표현 간의 변환에 사용됩니다.

기본 로캘은 C이며 이전 버전과의 호환성을 위해 천 단위 그룹 구분 기호는 사용되지 않는 특수한 경우입니다.

locale()도 참조하세요 .

void QTextStream::setNumberFlags(QTextStream::NumberFlags flags)

현재 숫자 플래그를 flags 로 설정합니다. flagsNumberFlag 열거형의 플래그 집합으로, 생성된 코드의 서식 지정 옵션(예: 숫자의 기저 또는 기호를 항상 쓸지 여부)을 설명합니다.

numberFlags(), setIntegerBase() 및 setRealNumberNotation()도 참조하세요 .

void QTextStream::setPadChar(QChar ch)

패드 문자를 ch 로 설정합니다. 기본값은 ASCII 공백 문자(' ') 또는 QChar(0x20)입니다. 이 문자는 텍스트를 생성할 때 필드에 공백을 채우는 데 사용됩니다.

예시:

QString s;
QTextStream out(&s);
out.setFieldWidth(10);
out.setFieldAlignment(QTextStream::AlignCenter);
out.setPadChar('-');
out << "Qt" << "rocks!";

s 문자열이 포함됩니다:

----Qt------rocks!--

padChar() 및 setFieldWidth()도 참조하세요 .

void QTextStream::setRealNumberNotation(QTextStream::RealNumberNotation notation)

실수 표기법을 notation (SmartNotation, FixedNotation, ScientificNotation)로 설정합니다. QTextStream 은 숫자를 읽고 생성할 때 이 값을 사용하여 실수의 서식을 감지합니다.

realNumberNotation(), setRealNumberPrecision(), setNumberFlags() 및 setIntegerBase()도 참조하세요 .

void QTextStream::setRealNumberPrecision(int precision)

실수의 정밀도를 precision 로 설정합니다. 이 값은 실수(FixedNotation, ScientificNotation) 또는 최대 유효 자릿수(SmartNotation)를 생성할 때 작성해야 하는 분수 자릿수( QTextStream )를 나타냅니다.

정밀도는 음수 값일 수 없습니다. 기본값은 6입니다.

realNumberPrecision() 및 setRealNumberNotation()도 참조하세요 .

void QTextStream::setStatus(QTextStream::Status status)

텍스트 스트림의 상태를 주어진 status 로 설정합니다.

resetStatus()가 호출될 때까지 이후의 setStatus() 호출은 무시됩니다.

Status, status() 및 resetStatus()도 참조하세요 .

void QTextStream::setString(QString *string, QIODeviceBase::OpenMode openMode = ReadWrite)

주어진 openMode 을 사용하여 현재 문자열을 string 으로 설정합니다. 장치가 이미 할당된 경우 QTextStreamflush()을 호출하여 장치를 대체합니다.

string() 및 setDevice()도 참조하세요 .

void QTextStream::skipWhiteSpace()

공백이 아닌 문자가 감지되거나 atEnd()가 참을 반환할 때까지 스트림에서 공백을 읽고 삭제합니다. 이 함수는 스트림을 한 글자씩 읽을 때 유용합니다.

공백 문자는 QChar::isSpace()가 true 을 반환하는 모든 문자입니다.

operator>>()도 참조하세요 .

QTextStream::Status QTextStream::status() const

텍스트 스트림의 상태를 반환합니다.

QTextStream::Status, setStatus() 및 resetStatus()도 참조하세요 .

QString *QTextStream::string() const

QTextStream 에 할당된 현재 문자열을 반환하거나 문자열이 할당되지 않은 경우 nullptr 을 반환합니다.

setString() 및 device()도 참조하세요 .

QTextStream &QTextStream::operator<<(QChar c)

c 문자를 스트림에 쓴 다음 QTextStream 에 대한 참조를 반환합니다.

setFieldWidth()도 참조하세요 .

QTextStream &QTextStream::operator<<(const QString &string)

string 문자열을 스트림에 쓰고 QTextStream 에 대한 참조를 반환합니다. 문자열은 스트림에 쓰기 전에 먼저 할당된 인코딩(기본값은 UTF-8)을 사용하여 인코딩됩니다.

setFieldWidth() 및 setEncoding()도 참조하세요 .

QTextStream &QTextStream::operator<<(float f)

실수 f 를 스트림에 쓴 다음 QTextStream 에 대한 참조를 반환합니다. 기본적으로 QTextStream 는 최대 6자리 정밀도의 SmartNotation 를 사용하여 저장합니다. setRealNumberNotation (), setRealNumberPrecision() 및 setNumberFlags()를 호출하여 QTextStream 이 실수에 사용할 텍스트 표현을 변경할 수 있습니다.

setFieldWidth(), setRealNumberNotation(), setRealNumberPrecision() 및 setNumberFlags()도 참조하세요 .

QTextStream &QTextStream::operator<<(short i)

정수 숫자 i 를 스트림에 쓴 다음 QTextStream 에 대한 참조를 반환합니다. 기본적으로 숫자는 10진수 형식으로 저장되지만 setIntegerBase()를 호출하여 기저를 설정할 수도 있습니다.

setFieldWidth() 및 setNumberFlags()도 참조하세요 .

QTextStream &QTextStream::operator<<(QLatin1StringView string)

이것은 오버로드된 함수입니다.

string 을 스트림에 쓰고 QTextStream 에 대한 참조를 반환합니다.

QTextStream &QTextStream::operator<<(QStringView string)

이것은 오버로드된 함수입니다.

string 을 스트림에 쓰고 QTextStream 에 대한 참조를 반환합니다.

QTextStream &QTextStream::operator<<(char c)

이 함수는 오버로드된 함수입니다.

c 를 ASCII에서 QChar 로 변환한 다음 스트림에 씁니다.

[since 6.3.1] QTextStream &QTextStream::operator<<(char16_t c)

이 함수는 오버로드된 함수입니다.

유니코드 문자 c 를 스트림에 쓴 다음 QTextStream 에 대한 참조를 반환합니다.

이 함수는 Qt 6.3.1에 도입되었습니다.

QTextStream &QTextStream::operator<<(const QByteArray &array)

과부하가 걸린 함수입니다.

array 을 스트림에 씁니다. array 의 콘텐츠는 QString::fromUtf8()로 변환됩니다.

QTextStream &QTextStream::operator<<(const char *string)

이 함수는 오버로드된 함수입니다.

string 이 가리키는 상수 문자열을 스트림에 씁니다. string 은 UTF-8 인코딩으로 가정합니다. 이 연산자는 상수 문자열 데이터로 작업할 때 편리합니다. 예시:

QTextStream out(stdout);
out << "Qt rocks!" << Qt::endl;

경고: QTextStreamstring 이 '\0' 문자로 끝나는 텍스트 문자열을 가리킨다고 가정합니다. 종료하는 '\0' 문자가 없으면 애플리케이션이 충돌할 수 있습니다.

QTextStream &QTextStream::operator<<(const void *ptr)

이 함수는 오버로드된 함수입니다.

ptr 을 염기가 있는 16진수로 스트림에 씁니다.

QTextStream &QTextStream::operator<<(double f)

이것은 과부하된 함수입니다.

이중 f 을 스트림에 씁니다.

QTextStream &QTextStream::operator<<(int i)

이 함수는 오버로드된 함수입니다.

서명된 int i 를 스트림에 씁니다.

QTextStream &QTextStream::operator<<(long i)

이 함수는 과부하된 함수입니다.

서명된 긴 i 을 스트림에 씁니다.

QTextStream &QTextStream::operator<<(qlonglong i)

과부하가 걸린 함수입니다.

qlonglong i 을 스트림에 씁니다.

QTextStream &QTextStream::operator<<(qulonglong i)

과부하가 걸린 함수입니다.

qulonglong i 을 스트림에 씁니다.

QTextStream &QTextStream::operator<<(unsigned int i)

이것은 오버로드된 함수입니다.

서명되지 않은 int i 를 스트림에 씁니다.

QTextStream &QTextStream::operator<<(unsigned long i)

이 함수는 오버로드된 함수입니다.

서명되지 않은 긴 i 을 스트림에 씁니다.

QTextStream &QTextStream::operator<<(unsigned short i)

이 함수는 오버로드된 함수입니다.

서명되지 않은 짧은 i 을 스트림에 씁니다.

QTextStream &QTextStream::operator>>(QChar &c)

스트림에서 문자를 읽고 c 에 저장합니다. QTextStream 에 대한 참조를 반환하므로 여러 연산자를 중첩할 수 있습니다. 예시:

QTextStream in(file);
QChar ch1, ch2, ch3;
in >> ch1 >> ch2 >> ch3;

공백은 건너뛰지 않습니다.

QTextStream &QTextStream::operator>>(QString &str)

스트림에서 단어를 읽고 str 에 저장한 다음 스트림에 대한 참조를 반환합니다. 단어는 공백으로 구분됩니다(즉, QChar::isSpace()가 true 을 반환하는 모든 문자).

선행 공백은 건너뜁니다.

QTextStream &QTextStream::operator>>(float &f)

스트림에서 실수를 읽어 f 에 저장한 다음 QTextStream 에 대한 참조를 반환합니다. 이 숫자는 올바른 유형으로 캐스팅됩니다. 스트림에서 실수가 감지되지 않으면 f 은 0.0으로 설정됩니다.

특별한 예외로 QTextStream 은 문자열 "nan" 및 "inf"가 NAN 및 INF 부동 소수점 또는 배수를 나타낼 수 있도록 허용합니다.

선행 공백은 건너뜁니다.

QTextStream &QTextStream::operator>>(short &i)

스트림에서 정수를 읽어 i 에 저장한 다음 QTextStream 에 대한 참조를 반환합니다. 숫자는 저장되기 전에 올바른 유형으로 캐스팅됩니다. 스트림에서 숫자가 감지되지 않으면 i 은 0으로 설정됩니다.

기본적으로 QTextStream 은 다음 규칙을 사용하여 숫자의 기저를 감지하려고 시도합니다:

접두사Base
"0b" 또는 "0B"2(이진)
"0" 뒤에 "0-7"8(8진수)
그렇지 않으면 "0"10(10진수)
"0x" 또는 "0X"16(16진수)
"1" ~ "9"10(10진수)

setIntegerBase()를 호출하여 정수 기저를 명시적으로 지정할 수 있습니다. 이렇게 하면 자동 감지가 비활성화되고 QTextStream 속도가 약간 빨라집니다.

선행 공백은 건너뜁니다.

QTextStream &QTextStream::operator>>(QByteArray &array)

이 함수는 오버로드된 함수입니다.

단어를 UTF-8로 변환한 다음 array 에 저장합니다.

QString::toLatin1()도 참조하세요 .

QTextStream &QTextStream::operator>>(char &c)

이것은 오버로드된 함수입니다.

스트림에서 문자를 읽어 c 에 저장합니다. 스트림의 문자는 저장되기 전에 ISO-8859-1로 변환됩니다.

QChar::toLatin1()도 참조하세요 .

QTextStream &QTextStream::operator>>(char *c)

이 함수는 오버로드된 함수입니다.

단어를 UTF-8로 변환하여 '\0' 문자로 끝나는 c 에 저장합니다. 사용할 수 있는 단어가 없으면 '\0' 문자만 저장됩니다.

경고: QTextStreamc 이 단어를 저장할 수 있는 충분한 공간이 있는 버퍼를 가리킨다고 가정합니다. 버퍼가 너무 작으면 애플리케이션이 충돌할 수 있습니다. n QChars로 구성된 단어의 경우 버퍼의 길이는 3*n+1 문자 이상이어야 합니다.

가능하면 QByteArray 연산자를 대신 사용하세요.

[since 6.4] QTextStream &QTextStream::operator>>(char16_t &c)

이것은 오버로드된 함수입니다.

스트림에서 문자를 읽고 c 에 저장합니다.

이 함수는 Qt 6.4에 도입되었습니다.

QTextStream &QTextStream::operator>>(double &f)

이것은 과부하 함수입니다.

이중 f 에 실수를 저장합니다.

QTextStream &QTextStream::operator>>(int &i)

이것은 오버로드된 함수입니다.

부호화된 int i 에 정수를 저장합니다.

QTextStream &QTextStream::operator>>(long &i)

이것은 오버로드된 함수입니다.

부호화된 긴 i 에 정수를 저장합니다.

QTextStream &QTextStream::operator>>(qlonglong &i)

이것은 오버로드된 함수입니다.

i 에 정수를 저장합니다.

QTextStream &QTextStream::operator>>(qulonglong &i)

이것은 과부하 함수입니다.

쿼롱롱 i 에 정수를 저장합니다.

QTextStream &QTextStream::operator>>(unsigned int &i)

이것은 오버로드된 함수입니다.

부호 없는 int i 에 정수를 저장합니다.

QTextStream &QTextStream::operator>>(unsigned long &i)

이것은 오버로드된 함수입니다.

부호 없는 긴 i 에 정수를 저장합니다.

QTextStream &QTextStream::operator>>(unsigned short &i)

이것은 오버로드된 함수입니다.

부호 없는 짧은 i 에 정수를 저장합니다.

관련 비회원

QTextStreamManipulator qSetFieldWidth(int width)

QTextStream::setFieldWidth(width)에 해당합니다.

QTextStreamManipulator qSetPadChar(QChar ch)

QTextStream::setPadChar(ch)에 해당합니다.

QTextStreamManipulator qSetRealNumberPrecision(int precision)

QTextStream::setRealNumberPrecision(precision)에 해당합니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.