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)
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 は、QIODeviceQByteArrayQString を操作できます。 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 は Unicode ベースのバッファを使用し、QStringConverter は QTextStream が異なるエンコーディングを自動的にサポートするために使用します。デフォルトでは、読み書きに UTF-8 が使用されますが、setEncoding() を呼び出してエンコードを設定することもできます。Unicode の自動検出もサポートされています。この機能が有効な場合 (デフォルトの動作)、QTextStream は UTF-8、UTF-16、または UTF-32 BOM (Byte Order Mark) を検出し、読み込み時に適切な UTF エンコーディングに切り替えます。QTextStream はデフォルトでは BOM を書き込みませんが、setGenerateByteOrderMark(true) を呼び出すことで有効にできます。QTextStream がQString を直接操作する場合、エンコーディングは無効になります。

テキストファイルの読み込み時に QTextStream を使用する一般的な方法は 3 つあります:

  • チャンク単位。readLine() またはreadAll() を呼び出します。
  • 単語単位。QTextStream はQStrings,QByteArrays, char* バッファへのストリーミングをサポートしています。単語はスペースで区切られ、先頭の空白は自動的にスキップされます。
  • 1文字ずつ、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 >> dec >> secondNumber;     // secondNumber == 0

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

QTextStream は、テキストを生成するための多くのフォーマット・オプションをサポートしています。setFieldWidth() およびsetPadChar() を呼び出すと、フィールド幅とパッド文字を設定できます。setFieldAlignment() を使用して、各フィールド内のアラインメントを設定します。実数の場合は、setRealNumberNotation() およびsetRealNumberPrecision() を呼び出して、生成される数値の表記 (SmartNotation,ScientificNotation,FixedNotation) と桁数単位の精度を設定します。また、setNumberFlags() を使用することで、追加の数値書式オプションも利用できる。

標準 C++ ライブラリの<iostream> と同様に、QTextStream にもいくつかのグローバル・マニピュレーター関数が定義されています:

さらに Qt では、qSetFieldWidth()、qSetPadChar()、qSetRealNumberPrecision() の 3 つのグローバル・マニピュレーターがパラメーターを受け取ります。

QDataStreamQIODeviceQFileQBufferQTcpSocketも参照して ください。

メンバ型ドキュメント

enum QTextStream::FieldAlignment

この列挙型は、フィールドの幅がそのフィールドを占めるテキストよりも広い場合に、フィールド内のテキストをどのように整列させるかを指定します。

定数説明
QTextStream::AlignLeft0フィールドの右側を埋める。
QTextStream::AlignRight1フィールドの左側に寄せる。
QTextStream::AlignCenter2フィールドの両側を埋める
QTextStream::AlignAccountingStyle3AlignRightと同じ。ただし、数値の符号は左寄せになる。

setFieldAlignment()も参照

enum QTextStream::NumberFlag
flags QTextStream::NumberFlags

この enum は、整数、floats、doubles の出力に影響するさまざまなフラグを指定します。

定数説明
QTextStream::ShowBase0x1基数が 16 ("0x")、8 ("0")、2 ("0b") の場合に、接頭辞として基数を表示します。
QTextStream::ForcePoint0x2小数点がない場合でも、数値には常に小数点区切り記号を付ける。
QTextStream::ForceSign0x4正の数であっても、常に符号を入れる。
QTextStream::UppercaseBase0x8基本接頭辞には大文字を使う("0X"、"0B")。
QTextStream::UppercaseDigits0x1010桁から35桁の数字を表すには、小文字ではなく大文字を使う。

NumberFlags型はQFlags<NumberFlag>のtypedefである。NumberFlagの値のORの組み合わせを格納する。

setNumberFlags()も参照のこと

enum QTextStream::RealNumberNotation

この列挙型は、floatdouble を文字列として表現する際に使用する記法を指定します。

定数説明
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)

openMode を使用してオープン・モードを定義し、fileHandle を操作する QTextStream を構築します。内部的には、FILEポインタを処理するためにQFile

このコンストラクタは、一般的な FILE ベースの入出力ストリームである stdin、stdout、stderr を直接操作する場合に便利です。例

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)

string を操作する QTextStream を構築します。openMode を使ってオープンモードを定義します。

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

array を操作する QTextStream を構築します。openMode を使用してオープンモードを定義します。配列は、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 は内部 Unicode バッファも考慮に入れているからだ。

bool QTextStream::autoDetectUnicode() const

自動 Unicode 検出が有効な場合はtrue を返し、そうでない場合はfalse を返す。Unicode 自動検出はデフォルトで有効になっています。

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 エンコーディング使用時に UTF BOM(Byte Order Mark)を生成するようにQTextStream が設定されている場合はtrue を返し、そうでない場合はfalse を返します。それ以外の場合は を返します。 UTF BOM 生成はデフォルトで false に設定されています。

setGenerateByteOrderMark()も参照

int QTextStream::integerBase() const

整数の現在の底を返す。0 は、数値を読み込む際に基数を検出することを意味し、 10 (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)

ストリームから1行のテキストを読み込み、それをQString として返す。 許可される行の最大長はmaxlen に設定される。 ストリームにこれより長い行がある場合、行はmaxlen 文字の後で分割され、分割されて返される。

maxlen が0の場合、行の長さは任意である。

返される行には行末文字(" \n "または" \rn")がないので、QString::trimmed()を呼び出す必要はない。

ストリームがファイルの最後まで読み込まれた場合、readLine() は NULLQString を返します。文字列の場合、またはそれをサポートするデバイスの場合は、atEnd() を使用してストリームの終わりを明示的にテストできます。

readAll() およびQIODevice::readLine()も参照

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

ストリームから1行のテキストをline に読み込む。linenullptr の場合、読み込んだ行は格納されない。

許容される行の最大長はmaxlen に設定される。 ストリームにこれより長い行がある場合、行はmaxlen 文字以降で分割され、分割されて返される。

maxlen が0の場合、行の長さは任意である。

結果の行には行末文字("˶n "または"˶rn")がないので、QString::trimmed ()を呼び出す必要はない。

line に読み込もうとするデータに対して十分な容量がある場合、この関数は新しいメ モリを確保する必要がない。このため、readLine() よりも高速である。

ストリームがファイルの最後まで読み込まれたか、エラーが発生した場合はfalse を返し、そうでない場合はtrue を返す。呼び出し前のline の内容は、どのような場合でも破棄される。

readAll() およびQIODevice::readLine()も参照のこと

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::Statusstatus()、setStatus()も参照のこと

bool QTextStream::seek(qint64 pos)

デバイス内の位置pos をシークする。成功すればtrue を返し、そうでなければfalse を返す。

void QTextStream::setAutoDetectUnicode(bool enabled)

enabled が true の場合、QTextStream は、ストリームデータを覗いて UTF-8、UTF-16、または UTF-32 のバイトオーダーマーク(BOM)を見つけられるかどうかを調べることで、Unicode エンコーディングの検出を試みます。このマークが見つかった場合、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(2進数)、8(8進数)、10(10進数)、16(16進数)のいずれかを指定する。 が0の場合、 は、ストリーム上のデータを検査することで、ベースを検出しようとする。数値を生成する場合、 は、基数が明示的に設定されていない限り、基数が10であると仮定する。base QTextStream QTextStream

integerBase()、QString::number()、setNumberFlags()も参照の こと。

void QTextStream::setLocale(const QLocale &locale)

このストリームのロケールをlocale に設定します。 指定したロケールは、数値とその文字列表現との間の変換に使用されます。

デフォルトのロケールは C で、これは特殊なケースです。 後方互換性の理由から、千のグループセパレータは使用されません。

locale()も参照

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

現在の数値フラグをflags に設定する。flagsNumberFlag enum のフラグのセットで、生成されるコードをフォーマットするためのオプション(例えば、数値の基数や符号を常に記述するかどうか)を記述する。

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) を生成する際にQTextStream が書き込むべき分数の桁数、または最大有効桁数 (SmartNotation) を記述します。

精度は負の値にはできません。デフォルト値は6である。

realNumberPrecision() およびsetRealNumberNotation()も参照

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

テキスト・ストリームのステータスをstatus に設定する。

それ以降の setStatus() の呼び出しは、resetStatus() が呼び出されるまで無視される。

Statusstatus()、resetStatus()も参照

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

与えられたopenMode を使用して、現在の文字列をstring に設定する。デバイスが既に割り当てられている場合、QTextStream は、それを置き換える前にflush() を呼び出す。

string() およびsetDevice()も参照のこと

void QTextStream::skipWhiteSpace()

非空白文字が検出されるか、atEnd() が真を返すまで、ストリームから空白文字を読み込んで破棄する。この関数は、ストリームを1文字ずつ読み込む場合に便利です。

空白文字は、QChar::isSpace() がtrue を返すすべての文字です。

operator>>()も参照

QTextStream::Status QTextStream::status() const

テキスト・ストリームの状態を返す。

QTextStream::StatussetStatus()、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 は、SmartNotation を使用して、最大6桁の精度で格納する。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)

これはオーバーロードされた関数です。

Unicode 文字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)

これはオーバーロードされた関数である。

doublef をストリームに書き込みます。

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

これはオーバーロードされた関数である。

符号付き inti をストリームに書き込む。

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

これはオーバーロードされた関数である。

符号付き longi をストリームに書き込む。

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

これはオーバーロードされた関数です。

qlonglongi をストリームに書き込む。

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

これはオーバーロードされた関数である。

qulonglongi をストリームに書き込む。

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

これはオーバーロードされた関数である。

unsigned inti をストリームに書き込む。

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

これはオーバーロードされた関数である。

符号なし longi をストリームに書き込む。

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

これはオーバーロードされた関数である。

unsigned shorti をストリームに書き込む。

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 は、以下のルールを使用して数値の基数を検出しようとします:

接頭辞基数
"0b "または "0B"2(バイナリ)
"0 "に続く "0-7"8(8進数)
それ以外は "0"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'文字だけが格納されます。

警告QTextStream は、c がワードを保持するのに十分なスペースを持つバッファを指していると仮定します。バッファが小さすぎると、アプリケーションがクラッシュする可能性があります。n QCharsからなる単語の場合、バッファは少なくとも3*n+1 文字の長さが必要です。

可能であれば、代わりにQByteArray 演算子を使用してください。

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

これはオーバーロードされた関数である。

ストリームから文字を読み込み、c に格納します。

この関数は Qt 6.4 で導入されました。

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

これはオーバーロードされた関数である。

実数を doublef に格納する。

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

これはオーバーロードされた関数である。

整数を符号付き inti に格納する。

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

これはオーバーロードされた関数である。

符号付き longi に整数を格納する。

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

これはオーバーロードされた関数である。

整数を qlonglongi に格納します。

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

これはオーバーロードされた関数である。

整数を qulonglongi に格納します。

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

これはオーバーロードされた関数である。

整数を unsigned inti に格納します。

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

これはオーバーロードされた関数である。

整数を unsigned longi に格納します。

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

これはオーバーロードされた関数である。

整数を unsigned shorti に格納します。

関連する非会員

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.