📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 122行目: | 122行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
以下の例では、QTextStreamクラスを使用して書式を設定している。<br> | |||
<syntaxhighlight lang="c++"> | |||
// 浮動小数 | |||
QFile file(strFName); | |||
QTextStream OutStream(&file); | |||
// 浮動小数 e+形式 | |||
OutStream.setRealNumberNotation(QTextStream::ScientificNotation); | |||
// 浮動小数の桁数を固定 | |||
OutStream.setRealNumberNotation(QTextStream::FixedNotation); | |||
// 浮動小数点の桁数を設定 | |||
OutStream.setRealNumberPrecision(3); | |||
</syntaxhighlight> | |||
<br> | |||
列ごとに列幅を設定する場合は、1つ列を出力するごとに設定する必要がある。<br> | |||
<syntaxhighlight lang="c++"> | |||
QFile file(strFName); | |||
QTextStream OutStream(&file); | |||
// 列を右寄せに設定 | |||
OutStream.setFieldAlignment(QTextStream::AlignRight); | |||
// 1列目の文字数を設定 | |||
OutStream.setFieldWidth(20); | |||
OutStream << "1列目" | |||
// 2列目の文字数を設定 | |||
// 最終列の改行では、std::endlを使用してはならない | |||
OutStream.setFieldWidth(40); | |||
OutStream << "2列目" + "\n" << flush; | |||
</syntaxhighlight> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>最終列の改行において、std::endlを使用する場合、それが1つの列として扱われるため、</u><br> | |||
<u>空列が1つ余計に追加されて余分な空白が末尾に追加されてしまう。</u><br> | |||
<br> | |||
以下の例では、出力エンコーディングを指定する。<br> | |||
<syntaxhighlight lang="c++"> | |||
// 例. UTF-8にする場合 | |||
QFile file(strFName); | |||
QTextStream OutStream(&file); | |||
OutStream.setCodec("UTF-8"); | |||
</syntaxhighlight> | |||
<br> | |||
出力エンコードをShift-JISに設定する場合、"~"が文字化けする時がある。<br> | |||
詳細を知りたい場合は、こちらのWebサイトを参照すること。<br> | |||
http://park3.wakwak.com/~ozashin/sw_tips/webapp_tips/sjis_charset.html<br> | |||
<br> | |||
この文字化けを直すには、以下のように記述する。(Winodwsのみ)<br> | |||
<syntaxhighlight lang="c++"> | |||
QFile file(strFName); | |||
QTextStream OutStream(&file); | |||
OutStream << str.replace(QChar(0x301C), QChar(0xFF5E)); | |||
</syntaxhighlight> | |||
<br> | |||
==== バイナリデータの書き込み ==== | ==== バイナリデータの書き込み ==== | ||
バイナリデータを書き込む場合は、<code>QFile</code>クラスの<code>write</code>メソッドを使用する。<br> | バイナリデータを書き込む場合は、<code>QFile</code>クラスの<code>write</code>メソッドを使用する。<br> | ||