Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qtextstream.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QTEXTSTREAM_H
5#define QTEXTSTREAM_H
6
7#include <QtCore/qiodevicebase.h>
8#include <QtCore/qchar.h>
9#include <QtCore/qscopedpointer.h>
10#include <QtCore/qstringconverter_base.h>
11
12#include <stdio.h>
13
14#if 0
15// the macros around the class name throw off syncqt:
16#pragma qt_class(QTextStream)
17#endif
18
19#ifdef Status
20#error qtextstream.h must be included before any header file that defines Status
21#endif
22
24
25class QIODevice;
26class QLocale;
27class QString;
28
29#if !QT_DEPRECATED_SINCE(6, 9)
30# define QT_NO_INHERITABLE_TEXT_STREAM
31#endif
32
33#ifdef QT_NO_INHERITABLE_TEXT_STREAM
34# define QT_TEXT_STREAM_FINAL final
35#else
36# define QT_TEXT_STREAM_FINAL
37#endif
38
41{
42 Q_DECLARE_PRIVATE(QTextStream)
43
44public:
48 ScientificNotation
49 };
54 AlignAccountingStyle
55 };
56 enum Status {
60 WriteFailed
61 };
63 ShowBase = 0x1,
64 ForcePoint = 0x2,
65 ForceSign = 0x4,
66 UppercaseBase = 0x8,
67 UppercaseDigits = 0x10
68 };
69 Q_DECLARE_FLAGS(NumberFlags, NumberFlag)
70
73 explicit QTextStream(FILE *fileHandle, OpenMode openMode = ReadWrite);
74 explicit QTextStream(QString *string, OpenMode openMode = ReadWrite);
75 explicit QTextStream(QByteArray *array, OpenMode openMode = ReadWrite);
76 explicit QTextStream(const QByteArray &array, OpenMode openMode = ReadOnly);
77 QT6_ONLY(virtual)
79
80 void setEncoding(QStringConverter::Encoding encoding);
81 QStringConverter::Encoding encoding() const;
82 void setAutoDetectUnicode(bool enabled);
83 bool autoDetectUnicode() const;
84 void setGenerateByteOrderMark(bool generate);
85 bool generateByteOrderMark() const;
86
87 void setLocale(const QLocale &locale);
88 QLocale locale() const;
89
90 void setDevice(QIODevice *device);
91 QIODevice *device() const;
92
93 void setString(QString *string, OpenMode openMode = ReadWrite);
94 QString *string() const;
95
96 Status status() const;
97 void setStatus(Status status);
98 void resetStatus();
99
100 bool atEnd() const;
101 void reset();
102 void flush();
103 bool seek(qint64 pos);
104 qint64 pos() const;
105
106 void skipWhiteSpace();
107
108 QString readLine(qint64 maxlen = 0);
109 bool readLineInto(QString *line, qint64 maxlen = 0);
110 QString readAll();
112
114 FieldAlignment fieldAlignment() const;
115
117 QChar padChar() const;
118
120 int fieldWidth() const;
121
122 void setNumberFlags(NumberFlags flags);
123 NumberFlags numberFlags() const;
124
125 void setIntegerBase(int base);
126 int integerBase() const;
127
128 void setRealNumberNotation(RealNumberNotation notation);
129 RealNumberNotation realNumberNotation() const;
130
131 void setRealNumberPrecision(int precision);
132 int realNumberPrecision() const;
133
134 QTextStream &operator>>(QChar &ch);
135 QTextStream &operator>>(char &ch);
136 QTextStream &operator>>(char16_t &ch)
137 { QChar c; *this >> c; ch = c.unicode(); return *this; }
138 QTextStream &operator>>(signed short &i);
139 QTextStream &operator>>(unsigned short &i);
140 QTextStream &operator>>(signed int &i);
141 QTextStream &operator>>(unsigned int &i);
142 QTextStream &operator>>(signed long &i);
143 QTextStream &operator>>(unsigned long &i);
151
154 QTextStream &operator<<(char16_t ch) { return *this << QChar(ch); }
155 QTextStream &operator<<(signed short i);
156 QTextStream &operator<<(unsigned short i);
158 QTextStream &operator<<(unsigned int i);
159 QTextStream &operator<<(signed long i);
160 QTextStream &operator<<(unsigned long i);
169 QTextStream &operator<<(const char *c);
171
172private:
173 Q_DISABLE_COPY(QTextStream)
175 friend class QDebug;
176
178};
179
181
182/*****************************************************************************
183 QTextStream manipulators
184 *****************************************************************************/
185
186typedef QTextStream & (*QTextStreamFunction)(QTextStream &);// manipulator function
187typedef void (QTextStream::*QTSMFI)(int); // manipulator w/int argument
188typedef void (QTextStream::*QTSMFC)(QChar); // manipulator w/QChar argument
189
190
191class Q_CORE_EXPORT QTextStreamManipulator
192{
193public:
194 constexpr QTextStreamManipulator(QTSMFI m, int a) noexcept : mf(m), mc(nullptr), arg(a), ch() {}
195 constexpr QTextStreamManipulator(QTSMFC m, QChar c) noexcept : mf(nullptr), mc(m), arg(-1), ch(c) {}
196 void exec(QTextStream &s) { if (mf) { (s.*mf)(arg); } else { (s.*mc)(ch); } }
197
198private:
199 QTSMFI mf; // QTextStream member function
200 QTSMFC mc; // QTextStream member function
201 int arg; // member function argument
202 QChar ch;
203};
204
207
210
212{ m.exec(s); return s; }
213
214namespace Qt {
215Q_CORE_EXPORT QTextStream &bin(QTextStream &s);
216Q_CORE_EXPORT QTextStream &oct(QTextStream &s);
217Q_CORE_EXPORT QTextStream &dec(QTextStream &s);
218Q_CORE_EXPORT QTextStream &hex(QTextStream &s);
219
220Q_CORE_EXPORT QTextStream &showbase(QTextStream &s);
221Q_CORE_EXPORT QTextStream &forcesign(QTextStream &s);
222Q_CORE_EXPORT QTextStream &forcepoint(QTextStream &s);
223Q_CORE_EXPORT QTextStream &noshowbase(QTextStream &s);
224Q_CORE_EXPORT QTextStream &noforcesign(QTextStream &s);
225Q_CORE_EXPORT QTextStream &noforcepoint(QTextStream &s);
226
227Q_CORE_EXPORT QTextStream &uppercasebase(QTextStream &s);
229Q_CORE_EXPORT QTextStream &lowercasebase(QTextStream &s);
231
232Q_CORE_EXPORT QTextStream &fixed(QTextStream &s);
233Q_CORE_EXPORT QTextStream &scientific(QTextStream &s);
234
235Q_CORE_EXPORT QTextStream &left(QTextStream &s);
236Q_CORE_EXPORT QTextStream &right(QTextStream &s);
237Q_CORE_EXPORT QTextStream &center(QTextStream &s);
238
239Q_CORE_EXPORT QTextStream &endl(QTextStream &s);
240Q_CORE_EXPORT QTextStream &flush(QTextStream &s);
241Q_CORE_EXPORT QTextStream &reset(QTextStream &s);
242
243Q_CORE_EXPORT QTextStream &bom(QTextStream &s);
244
245Q_CORE_EXPORT QTextStream &ws(QTextStream &s);
246
247} // namespace Qt
248
250{
251 QTSMFI func = &QTextStream::setFieldWidth;
253}
254
256{
257 QTSMFC func = &QTextStream::setPadChar;
259}
260
262{
263 QTSMFI func = &QTextStream::setRealNumberPrecision;
265}
266
268
269#endif // QTEXTSTREAM_H
IOBluetoothDevice * device
\inmodule QtCore
Definition qbytearray.h:57
\inmodule QtCore
\inmodule QtCore
\inheaderfile QIODevice \inmodule QtCore
\inmodule QtCore \reentrant
Definition qiodevice.h:34
\inmodule QtCore
\inmodule QtCore
Definition qstringview.h:78
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
QTextStream & operator<<(const QByteArray &array)
QTextStream & operator<<(char ch)
QTextStream & operator<<(float f)
QTextStream & operator<<(signed long i)
QTextStream & operator>>(char *c)
QTextStream & operator>>(unsigned short &i)
QTextStream & operator>>(signed int &i)
QTextStream & operator<<(unsigned short i)
QTextStream & operator>>(double &f)
QTextStream & operator>>(qulonglong &i)
QTextStream & operator>>(QByteArray &array)
QTextStream & operator<<(QChar ch)
QTextStream & operator<<(double f)
QTextStream & operator>>(signed short &i)
QTextStream & operator<<(qlonglong i)
QTextStream & operator<<(const QString &s)
QTextStream & operator<<(unsigned int i)
QTextStream & operator<<(unsigned long i)
QTextStream & operator>>(float &f)
QTextStream & operator<<(signed int i)
QTextStream & operator<<(const char *c)
QTextStream & operator>>(unsigned int &i)
QTextStream & operator<<(const void *ptr)
QTextStream & operator<<(QStringView s)
QTextStream & operator<<(signed short i)
QTextStream & operator<<(qulonglong i)
QTextStream & operator>>(QString &s)
QTextStream & operator>>(qlonglong &i)
QTextStream & operator>>(signed long &i)
QTextStream & operator>>(unsigned long &i)
QTextStream & operator<<(QLatin1StringView s)
QTextStream & operator<<(char16_t ch)
void exec(QTextStream &s)
constexpr QTextStreamManipulator(QTSMFC m, QChar c) noexcept
constexpr QTextStreamManipulator(QTSMFI m, int a) noexcept
\inmodule QtCore
uint alignment
Combined button and popup list for selecting options.
Definition qcompare.h:63
QTextStream & flush(QTextStream &stream)
Calls QTextStream::flush() on stream and returns stream.
QTextStream & uppercasebase(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::UppercaseBase) on stream ...
QTextStream & bin(QTextStream &stream)
Calls QTextStream::setIntegerBase(2) on stream and returns stream.
QTextStream & showbase(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ShowBase) on stream and r...
QTextStream & lowercasebase(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::UppercaseBase) on stream...
QTextStream & noforcesign(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ForceSign) on stream and...
QTextStream & uppercasedigits(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::UppercaseDigits) on strea...
QTextStream & bom(QTextStream &stream)
Toggles insertion of the Byte Order Mark on stream when QTextStream is used with a UTF encoding.
QTextStream & oct(QTextStream &stream)
Calls QTextStream::setIntegerBase(8) on stream and returns stream.
QTextStream & lowercasedigits(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::UppercaseDigits) on stre...
QTextStream & noshowbase(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ShowBase) on stream and ...
QTextStream & noforcepoint(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ForcePoint) on stream an...
QTextStream & ws(QTextStream &stream)
Calls \l {QTextStream::}{skipWhiteSpace()} on stream and returns stream.
QTextStream & fixed(QTextStream &stream)
Calls QTextStream::setRealNumberNotation(QTextStream::FixedNotation) on stream and returns stream.
QTextStream & forcesign(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ForceSign) on stream and ...
QTextStream & center(QTextStream &stream)
Calls QTextStream::setFieldAlignment(QTextStream::AlignCenter) on stream and returns stream.
QTextStream & forcepoint(QTextStream &stream)
Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ForcePoint) on stream and...
QTextStream & scientific(QTextStream &stream)
Calls QTextStream::setRealNumberNotation(QTextStream::ScientificNotation) on stream and returns strea...
class QT6_ONLY(Q_CORE_EXPORT) QChar
Definition qchar.h:44
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition qflags.h:194
static ControlElement< T > * ptr(QWidget *widget)
const GLfloat * m
GLboolean GLboolean GLboolean GLboolean a
[7]
GLdouble GLdouble right
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLfloat GLfloat f
GLint GLsizei width
GLint left
GLbitfield flags
GLdouble s
[6]
Definition qopenglext.h:235
GLboolean reset
GLenum func
Definition qopenglext.h:663
const GLubyte * c
GLenum array
GLenum GLint GLint * precision
SSL_CTX int void * arg
QTextStreamManipulator qSetPadChar(QChar ch)
QTextStreamManipulator qSetRealNumberPrecision(int precision)
QTextStream &(* QTextStreamFunction)(QTextStream &)
QTextStreamManipulator qSetFieldWidth(int width)
void(QTextStream::* QTSMFC)(QChar)
void(QTextStream::* QTSMFI)(int)
quint64 qulonglong
Definition qtypes.h:64
long long qint64
Definition qtypes.h:60
qint64 qlonglong
Definition qtypes.h:63
static const uint base
Definition qurlidna.cpp:20
ReturnedValue read(const char *data)
#define explicit
out setFieldAlignment(QTextStream::AlignCenter)
out setPadChar('-')
out setFieldWidth(10)
QDataStream & operator<<(QDataStream &out, const MyClass &myObj)
[4]
QDataStream & operator>>(QDataStream &in, MyClass &myObj)