問題タブ [c-str]

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.

0 投票する
6 に答える
55646 参照

c++ - 文字列 c_str() 対 data()

c_str()data()(STL およびその他の実装における)の違いは、c_str()常に null で終了し、そうdata()ではないといういくつかの場所を読みました。私が実際の実装で見た限り、それらは同じことをするか、またはdata()呼び出しますc_str()

ここで何が欠けていますか?どのシナリオでどちらを使用するのがより正しいですか?

0 投票する
3 に答える
6943 参照

c++ - std::string::c_str と std::string::data の違いは何ですか?

std::string::data()なぜ電話をかけたいのstd::string::c_str()ですか?確かに、ここには標準の狂気への何らかの方法があります...

0 投票する
3 に答える
3178 参照

c++ - C++ c_str が文字列全体を返さない

通常の ifstream と現在使用している boost:iostream の両方で次のコードを試しましたが、どちらも同じ結果になりました。

これは、ファイルを physfs からメモリにロードし、それをハンドラーに渡して処理することを目的としています (画像、オーディオ、データなど)。現在、c_str が呼び出されると、ファイルのごく一部しか返されません。

イテレータ ループは期待どおりに png ファイル全体を出力しますが、c_str 呼び出しは最初の数文字 (\211PNG) のみを返します。

私はかなり長い間、このコードのバリエーションを試してきましたが、成功しませんでした。何か案は?

0 投票する
1 に答える
3784 参照

gcc - Windows および Linux で String から const wchar_t* への変換関数を機能させる方法

私は MSVCC / Windows 用に書かれたプロジェクトに取り組んでおり、GCC / Linux に移植する必要があります。プロジェクトには独自の文字列クラスがあり、そのデータを Qt の QString に格納します。wchar_t* への変換には、もともとこのメソッドがありました (Windows 用):

unicode() は QChar (16 ビットの長さ) を返すため、これは Windows では wchar_t が 16 ビットであるため機能しましたが、GCC では wchar_t の長さが 32 ビットであるため、機能しなくなりました。私はこれを使用してそれを解決しようとしました:

これに関する問題は、この関数が返されたときにオブジェクトがもう生きていないため、これがうまくいかないことです。この問題を解決するには、次のいずれかの方法しかないと思います。

  1. String::c_str() を使用せず、 .toStdString().c_str() を直接呼び出します
  2. GCC が wchar_t を 16 ビット型として扱うようにする

可能性 1 は、私にとって数時間の不必要な作業を意味し、可能性 2 が可能かどうかはわかりません。私の質問は、この問題を最もよく解決するにはどうすればよいですか? 有益な提案をいただければ幸いです。ありがとうございました。

0 投票する
5 に答える
904 参照

c++ - .c_str() 奇妙ですか? 韻も理由もなくデータが変更されますか?

私はこの単純な機能を持っています:

その関数の 2 行目に、正しい wchar_t* があります。しかし、私が戻ってくると、データはガベージデータに切り替わります。間に機能はありません。何が得られる?!

0 投票する
4 に答える
5493 参照

c++ - 関数から「c_str」を返す

これは私がオンラインで見つけた小さな図書館からのものです:

私のコードでは、これを行っています:

さて、最初dはゴミが入っていました。std::ostringstream次に、関数から取得したC文字列は、スタックに割り当てられているため、関数が戻るときに破棄されることに気付きました。だから私は追加しました:

これで、関数から必要なテキストを取得できます。

2つの質問があります:

  1. 私はこれを正しく理解していますか?

  2. out後で、 (タイプのstd::ostringstream)静的ストレージが割り当てられていることに気付きました。それは、プログラムが終了するまでオブジェクトがメモリにとどまることになっているという意味ではありませんか?もしそうなら、なぜ文字列にアクセスできないのですか?

0 投票する
7 に答える
31313 参照

c++ - std::string::c_str() の結果の寿命は?

私のプログラムの 1 つで、const char*.

次のような構造があるとしましょう。

私の上位レベルのアプリケーションは のみを処理するため、ポインターを取得するためstd::stringに を使用することを考えました。std::string::c_str()const char*

しかし、の寿命はc_str()何ですか?

未定義の動作に直面することなく、このようなことを行うことはできますか?

または、結果をすぐc_str()に別の場所にコピーすることになっていますか?

ありがとうございました。

0 投票する
4 に答える
11097 参照

c++ - C / C ++でのC_str()関数の使用とは

C / C ++でのc_str()関数の使用法を教えてもらえますか?その場合、それを使用する必要がありますか?

0 投票する
0 に答える
817 参照

winforms - fstream と c_str() : c_str が機能していません

私は最近プログラムに取り組んでおり、System::String^ を使用してストリーム外ファイルに使用しようとしました...

いつもエラーが発生します... これはフォームであるため、ヘッダー ファイルです。

これは私のコードです...(一部)

私が得るエラーは次のとおりです。