問題タブ [qtextstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - QTextStream 操作
ファイルを開いて、その QTextStream を取得しています。次に、readLine() を使用してストリームを 1 行ずつ読み取ります。行が特定の文字列に一致する場合、それを別の文字列に置き換える必要があります。行が完全に置き換えられる動作が必要です (つまり、行が「ロングワード」で、「単語」に置き換えた場合、行には「単語」と「単語」のみが含まれている必要があります)。
現時点では、seek() を使用してから、<< 演算子を使用して文字列を特定の場所に配置していますが、最後の文字列の残りが残っているため、「wordword」のようなものが残っています。これが起こらないようにし、前の行全体を新しい行に完全に置き換えるにはどうすればよいですか?
c++ - 文字列を検索する QTextStream の動作が期待どおりではない
次の数行のコードがあります。
アイデアは、特定の char シーケンスのテキスト ファイルを検索し、見つかった場合、ファイルを最初から検索されたテキストの出現までロードすることです。テストに使用した入力は次のとおりです。
そして、ここで奇妙な部分が来ます-検索された文字列が最後の行を除いていずれかの行にある場合、期待される動作が得られます。それは完全にうまく機能します。
しかし、最後の 6 行目にある文字列を検索すると、結果は常に 5 文字短くなります。7 行目であれば結果は 6 文字短くなります。検索文字列が最終行にある場合、結果は常にlineNumber - 1
文字分短くなります。
それで、これはバグですか、それとも明らかな何かが欠けていますか?
編集: 明確にするために、これを行うための代替方法を求めているのではなく、なぜこの動作が発生するのかを尋ねています。
c++ - Qt - QTextStream - カーソル位置を行頭に設定する方法は?
の後readLine()
、カーソル位置を行頭に設定する方法は?
を使用seek()
して、私にpos()
はうまくいきません。
私のfile.txtは次のようになります。
これが私のコードです:
c++ - QTextStream 強調コード化
私は Qt5.1 で Qt を学習していますが、アクセントのコーディングに問題があります。私はポルトガル語で出力するプログラムを書いており、常にアクセントを使わなければなりません。この問題は、次のコードで示すことができます。
- 「Olá Mundo」はポルトガル語で Hello World です。
出力は次のとおりです。
オラー・ムンド!
オラー・ムンド!
オラ・ムンド!
この 3 番目の「Olá Mundo」は間違っています。出力を正しく印刷するには、常に QString を使用する必要がありますか、または最後の行を正しく (Qstring 宣言なしで) 印刷する方法はありますか? そして、なぜqDebugが正しく表示されるのですか?
c++ - Qt内から実行またはデバッグするときにQtがテキストファイルを作成しないのはなぜですか?デバッグフォルダーから直接作成すると、テキストファイルが作成されますか?
QTextStreamを使用してテキストファイルを作成してから書き込みます。問題は、アプリケーションをビルドして作成したフォルダーから実行するとファイルが作成されることですが、リリース モードまたはデバッグ モードで Qt 内から実行するとファイルが作成されません。誰か提案はありますか?Macbook Proを使用しています。
c++ - QFile クラスのネストに関する問題
次のような構造体を定義すると問題が発生します
次に、これを次のように QVector コンテナーに入れます。
その後、ベクター メンバー フィールドのいくつかのメソッドを呼び出します。
次のコンパイル エラーが発生します。
QTextStreamに関しても同じです。
それで、私は何が欠けていますか?
よろしくお願いします。
アップデート
@Ashot が提供する解決策は、TInputData オブジェクトを手動で作成することです。ただし、メモリ管理の問題がいくつか追加されます。回避策は、スマート ポインターを使用することです。
c++ - Qt コンパイル エラー: endl は常に true と評価されます
コンパイルする次のコードスニペットがあります
しかし、常に次の警告が表示されます。
test.cpp:87: 警告: 'QTextStream& endl(QTextStream&)' のアドレスは常に 'true' として評価されます [-Waddress]
それはどういう意味ですか、どうすれば修正できますか? 改行文字が印刷されているので、これは名前空間の問題ではないと思います...
c++ - QFile / QTextStream は、書き込み中の削除ファイルでエラーを表示しません
QTextStream を使用して QFile に書き込んでいますが、すべてうまくいきます。エラー検出を作成しようとしているので、書き込みの合間に出力ファイルを削除してみました。
Strangle、Qtextstream のステータスは引き続き 0 (エラーなし) を示し、QFile のエラー メソッドは 0 を返します。それでもファイルはなくなり、書き込まれたテキストは失われています...なくなっています
どうしたの?書き込みの失敗を検出するにはどうすればよいですか? 私は間違った方法を見ていますか?
c++ - QTextStream の解析
私の問題は十分に単純ですが、これを修正することはできません...
私のヘッダーで:
1 つのメソッドで QTextStream が初期化されます。
次に、別の方法で解析しようとしています:
初期化は正常に機能しますが、 inがatEnd()の場合、アプリはテストでクラッシュします。私は何を間違っていますか?いくつかの方法からアクセスできるようにする必要があります。ここでポインタを使用する必要があります(?) inは後で初期化されるためです(AFAIKは参照では不可能です)
明らかかもしれませんが、私はC ++にかなり慣れていません...
ありがとうございました!