이 페이지에서

QTextStream Class

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

헤더: #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)
(since 6.0) 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
(since 6.10) operator bool() 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)
(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) << Qt::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()`는 true를 반환합니다. flush()를 호출하면, QTextStream은 쓰기 버퍼에 있는 모든 데이터를 장치로 비우고, 장치에서 flush()를 호출합니다.

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

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

  • readLine() 또는 readAll()를 호출하여 청크 단위로 처리합니다.
  • 단어 단위로 처리합니다. QTextStream은 QString, QByteArray및 char* 버퍼로 스트리밍하는 것을 지원합니다. 단어는 공백으로 구분되며, 앞의 공백은 자동으로 건너뜁니다.
  • QChar 또는 char 유형으로 스트리밍하여 문자 단위로 처리합니다. 이 방법은 파일 구문 분석 시 문자 인코딩 및 줄 끝 규칙과 무관하게 편리한 입력 처리를 위해 자주 사용됩니다. 공백을 건너뛰려면 skipWhiteSpace()를 호출하십시오.

텍스트 스트림은 버퍼를 사용하므로, 슈퍼클래스의 구현을 사용하여 스트림에서 읽지 않아야 합니다. 예를 들어, ` QFile ` 객체가 있는데 스트림을 사용하지 않고 ` QFile::readLine()`를 통해 직접 읽는 경우, 텍스트 스트림의 내부 위치가 파일의 위치와 동기화되지 않게 됩니다.

기본적으로 텍스트 스트림에서 숫자를 읽을 때, QTextStream은 숫자의 기수 표기법을 자동으로 감지합니다. 예를 들어, 숫자가 "0x"로 시작하면 16진수 형식으로 간주됩니다. 1~9의 숫자로 시작하면 10진수 형식으로 간주되며, 이와 같은 방식이 적용됩니다. setIntegerBase()를 호출하여 정수의 기수를 설정함으로써 자동 감지 기능을 비활성화할 수 있습니다. 예시:

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

in >> firstNumber;             // firstNumber == 80
in >> Qt::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::endloperator<<('\n') 및 flush()과 동일합니다.
Qt::flushflush()와 동일합니다.
Qt::resetreset()과 동일합니다.
Qt::wsskipWhiteSpace()와 동일합니다.
Qt::bomsetGenerateByteOrderMark(true)와 동일합니다.

또한, Qt는 매개 변수를 받는 세 가지 전역 매니퓰레이터, 즉 qSetFieldWidth(), qSetPadChar() 및 qSetRealNumberPrecision()를 제공합니다.

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

멤버 유형 문서

enum QTextStream::FieldAlignment

이 열거형은 필드의 너비가 필드에 포함된 텍스트보다 넓을 때 텍스트를 어떻게 정렬할지 지정합니다.

상수값설명
QTextStream::AlignLeft0필드의 오른쪽을 채워줍니다.
QTextStream::AlignRight1필드의 오른쪽을 채워 넣습니다.
QTextStream::AlignCenter2필드의 양쪽에 패딩을 적용합니다.
QTextStream::AlignAccountingStyle3AlignRight와 동일하지만, 숫자의 부호가 왼쪽 정렬된다는 점이 다릅니다.

setFieldAlignment()도 참조하십시오 .

enum QTextStream::NumberFlag
flags QTextStream::NumberFlags

이 열거형은 정수, float, double의 출력 결과에 영향을 미치기 위해 설정할 수 있는 다양한 플래그를 지정합니다.

상수상수상수값
QTextStream::ShowBase0x1기수가 16("0x"), 8("0") 또는 2("0b")인 경우 기수를 접두사로 표시합니다.
QTextStream::ForcePoint0x2기수가 16("0x"), 8("0") 또는 2("0b")인 경우 기수를 접두사로 표시합니다. 소수점이 없더라도 숫자에는 항상 소수점 구분 기호를 삽입합니다.
QTextStream::ForceSign0x4양수인 경우에도 항상 숫자에 부호를 붙입니다.
QTextStream::UppercaseBase0x8기수 접두사는 대문자로 표기합니다("0X", "0B").
QTextStream::UppercaseDigits0x10숫자 10부터 35까지는 소문자 대신 대문자를 사용하여 표현합니다.

NumberFlags 유형은 QFlags<NumberFlag>에 대한 typedef입니다. 이 유형은 NumberFlag 값들의 OR 조합을 저장합니다.

setNumberFlags()도 참조하십시오 .

enum QTextStream::RealNumberNotation

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

상수상수설명
QTextStream::ScientificNotation2과학적 표기법 (printf() 의 %e 플래그).
QTextStream::FixedNotation1고정 소수점 표기법(printf() 의 %f 플래그).
QTextStream::SmartNotation0과학적 표기법 또는 고정 소수점 표기법 중 더 타당한 방식을 사용합니다 (printf() 의 %g 플래그).

setRealNumberNotation()도 참조하십시오 .

enum QTextStream::Status

이 열거형은 텍스트 스트림의 현재 상태를 나타냅니다.

상수값설명
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)

` fileHandle`을 대상으로 작동하는 `QTextStream`을 생성하며, ` openMode `을 사용하여 열기 모드를 정의합니다. 내부적으로는 `FILE` 포인터를 처리하기 위해 ` QFile `이 생성됩니다.

이 생성자는 stdin, stdout, stderr와 같은 일반적인 FILE 기반 입출력 스트림을 직접 처리할 때 유용합니다. 예시:

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

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

` array`을 대상으로 작동하는 `QTextStream`을 생성하며, ` openMode `를 사용하여 열기 모드를 정의합니다. 내부적으로는 해당 배열이 ` 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`를 반환합니다. 이는 ` QIODevice::atEnd()`를 호출하는 것과 유사하지만 동일하지는 않습니다. ` QTextStream `는 내부 유니코드 버퍼도 고려하기 때문입니다.

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`에 저장합니다. ` line `가 ` nullptr`인 경우, 읽은 줄은 저장되지 않습니다.

허용되는 최대 줄 길이는 maxlen 로 설정됩니다. 스트림에 이 길이보다 긴 줄이 포함되어 있는 경우, 해당 줄은 maxlen 개의 문자를 단위로 분할되어 여러 부분으로 반환됩니다.

maxlen 가 0인 경우, 줄 길이는 제한이 없습니다.

결과 줄에는 줄 끝 문자가("\n" 또는 "\r\n ") 포함되지 않으므로, QString::trimmed()를 호출할 필요가 없을 수 있습니다.

line 에 읽으려는 데이터를 수용할 충분한 용량이 있다면, 이 함수는 새로운 메모리를 할당할 필요가 없을 수 있습니다. 이 때문에 readLine()보다 더 빠를 수 있습니다.

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

readAll(), QIODevice::readLine(), QIODevice::readLineInto()도 참조하십시오 .

QTextStream::RealNumberNotation QTextStream::realNumberNotation() const

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

setRealNumberNotation(), realNumberPrecision(), numberFlags() 및 integerBase()도 참조하십시오 .

int QTextStream::realNumberPrecision() const

현재 실수의 정밀도, 즉 실수를 생성할 때 ` QTextStream `가 기록하는 소수 자릿수 (FixedNotation, ScientificNotation) 또는 유효 자릿수의 최대 개수(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 가 true인 경우, 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()도 참조하십시오 .

[since 6.0] void QTextStream::setEncoding(QStringConverter::Encoding encoding)

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

QTextStream 가 문자열을 대상으로 하는 경우, 이 함수는 아무 작업도 수행하지 않습니다.

경고: 텍스트 스트림이 열린 순차 소켓에서 데이터를 읽는 도중에 이 함수를호출하면 , 내부 버퍼에 여전히 이전 인코딩으로 디코딩된 텍스트가 남아 있을 수 있습니다.

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

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 가 true이고 UTF 인코딩이 사용되는 경우, QTextStream 는 장치에 데이터가 기록되기 전에 BOM(바이트 순서 표시)을 삽입합니다. generate 가 false인 경우, 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 로 설정합니다. flags 는 NumberFlag 열거형의 플래그 집합으로, 생성된 코드의 서식 지정 옵션(예: 숫자의 기수나 부호를 항상 표기할지 여부)을 설명합니다.

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`로 설정합니다. 이 값은 ` QTextStream `가 실수를 생성할 때(`FixedNotation`, ` ScientificNotation`) 소수 자릿수를 몇 자리로 출력할지, 또는 유효 자릿수의 최대 개수(`SmartNotation`)를 나타냅니다.

정밀도는 음수일 수 없습니다. 기본값은 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 로 설정합니다. 이미 장치가 할당된 경우, QTextStream 는 이를 대체하기 전에 flush()를 호출합니다.

string() 및 setDevice()도 참조하십시오 .

void QTextStream::skipWhiteSpace()

스트림에서 공백 문자를 읽어서 제거하며, 공백이 아닌 문자가 감지되거나 atEnd()가 true를 반환할 때까지 이 작업을 반복합니다. 이 함수는 스트림을 한 글자씩 읽을 때 유용합니다.

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

operator>>()도 참조하십시오 .

QTextStream::Status QTextStream::status() const

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

QTextStream::Status, setStatus() 및 resetStatus()도 참조하십시오 .

QString *QTextStream::string() const

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

setString() 및 device()도 참조하십시오 .

[explicit noexcept, since 6.10] QTextStream::operator bool() const

이 스트림에 오류가 없는지 여부를 반환합니다(status()는 Ok 를 반환합니다).

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

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 는 SmartNotation 를 사용하여 최대 6자리의 정밀도로 이를 저장합니다. setRealNumberNotation(), setRealNumberPrecision() 및 setNumberFlags()을 호출하여 QTextStream 가 실수에 대해 사용할 텍스트 표현을 변경할 수 있습니다.

setFieldWidth(), setRealNumberNotation(), setRealNumberPrecision() 및 setNumberFlags()도 참조하십시오 .

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

정수 i 를 스트림에 기록한 다음, QTextStream 에 대한 참조를 반환합니다. 기본적으로 숫자는 십진수 형식으로 저장되지만, 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;

경고: QTextStream 는 string 가 '\0' 문자로 끝나는 텍스트 문자열을 가리킨다고 가정합니다. 끝나는 '\0' 문자가 없으면 응용 프로그램이 중단될 수 있습니다.

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

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

ptr 를 기수가 명시된 16진수 형태로 스트림에 기록합니다.

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

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

double형 ` f `을 스트림에 기록합니다.

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

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

부호 있는 정수 i 를 스트림에 기록합니다.

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

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

부호 있는 long형 i 을 스트림에 기록합니다.

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

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

i 값을 스트림에 기록합니다.

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

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

qulonglong i 을 스트림에 기록합니다.

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

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

i 라는 부호 없는 정수 값을 스트림에 기록합니다.

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

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

i 라는 unsigned long 값을 스트림에 기록합니다.

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

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

i (부호 없는 short형)을 스트림에 기록합니다.

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

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 부동소수점(float 또는 double) 값을 나타내는 것으로 허용합니다.

선두의 공백은 무시됩니다.

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

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

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

접두사기수
"0b" 또는 "0B"2 (2진수)
"0" 뒤에 "0-7"이 오는 경우8 (8진수)
그 외의 경우 "0"10 (십진수)
"0x" 또는 "0X"16 (16진수)
"1"부터 "9"까지10 (십진수)

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

앞에 있는 공백은 무시됩니다.

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

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

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

QString::toLatin1()도 참조하십시오 .

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

스트림에서 문자를 하나 읽어와 ` c`에 저장합니다. 스트림에서 가져온 문자는 저장되기 전에 ISO-8859-1로 변환됩니다.

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

QChar::toLatin1()도 참조하십시오 .

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

스트림에서 문자를 하나 읽어와 ` c`에 저장합니다.

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

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

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

실수를 double형 f 에 저장합니다.

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

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

정수를 부호 있는 정수형 i 에 저장합니다.

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

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

정수를 부호 있는 long형 변수 i 에 저장합니다.

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

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

정수를 qlonglong형 변수 ` i`에 저장합니다.

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

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

정수를 qulonglong i 에 저장합니다.

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

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

정수를 unsigned int형 i 에 저장합니다.

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

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

정수 값을 unsigned long i 에 저장합니다.

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

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

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

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

관련 비회원 변수

QTextStreamManipulator qSetFieldWidth(int width)

QTextStream::setFieldWidth(width)와 동일합니다.

QTextStreamManipulator qSetPadChar(QChar ch)

QTextStream::setPadChar(ch)와 동일합니다.

QTextStreamManipulator qSetRealNumberPrecision(int precision)

QTextStream::setRealNumberPrecision(precision)와 동일합니다.

© 2026 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.