問題タブ [const-char]

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 投票する
2 に答える
621 参照

c - このインスタンスで関数から返された const char ポインタを使用する方法は? (mongodb関連)

mongodb c ドライバーが使用する aa 関数に少し問題があります。問題の関数は次のようになります。

私は次の方法でそれを使用しようとしています:

ただし、実行後、test.txt に次のように表示されます。

何が間違っているのかわかりません。指定したフィールドは、gridfs に保存しているすべてのファイルに存在するため、そうではないと思います (存在しないものを "file contains: " のファイルだけに指定し、その後に文字はありません)。私はポインターに関して何か間違ったことをしていると思います。誰かに何か提案があれば、それは素晴らしいことです。

編集::実際の宣言は

0 投票する
10 に答える
438044 参照

c++ - int から char* に変換する方法は?

私が知っている唯一の方法は次のとおりです。

しかし、タイピングの少ない方法はありますか?

0 投票する
2 に答える
2535 参照

c++ - C++: タイプ const char* の文字列リテラルを文字列パラメータに渡す

私はC ++を初めて使用し、このコードがうまく機能する理由を理解していません:

「bla」のような文字列リテラルは const char* 型です。少なくとも auto i = "bla"; i が「const char*」型であることを示します。関数は const char* ではなく文字列を想定しているため、GetString 関数に渡すことができるのはなぜですか?

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

c++ - constchar*をconstWCHAR*に変換する方法

私はこのようなものを持っています:

エラーが発生します:引数「1」の「constchar*」を「constWCHAR*」に変換できません「DWORDGetFileAttributesW(const WCHAR *)」

に変換する方法const char*const WCHAR*

0 投票する
2 に答える
5607 参照

c++ - std::map で char* をキーとして使用すると、どのように機能しますか

この質問は、 char を stdmap のキーとして使用することに直接関係しています。

渡された比較関数の機能と、型にキーとして必要な理由を理解していchar *ます。ただし、更新が実際にどのように機能するかはわかりません。

キーを更新している場合について知りたいです。std::map間の同等性を比較する方法をどのように知っていますか。キーをツリーに挿入する順序をマップに伝えるだけですconst char *cmp_str

stl_tree.hコードを少し掘り下げました( here から取得) が、あまり見つけることができませんでした。私の唯一の推測は、それが単純なメモリ比較を行っているということです。

stl_tree下位クラスがこの状況をどのように処理するか、または常に正しく処理しない場合、どのエッジ ケースが壊れるかに興味がありますか?

コード

出力

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

c++ - ファイル名の自動作成 C++

いくつかのファイル (.txt) を作成し、その結果を書き留めるプログラムを C++ で作成しようとしています。問題は、これらのファイルの量が最初に固定されておらず、プログラムの最後近くにしか表示されないことです。これらのファイルに「file_1.txt」、「file_2.txt」、...、「file_n.txt」という名前を付けたいと思います。n は整数です。

ファイル名には「const char*」型が必要であり、「string」をこの型に変換する方法が見つからなかったため、連結を使用できません。インターネットで答えが見つからないので、助けていただければ幸いです。

0 投票する
2 に答える
2311 参照

c++ - Error LNK2001 while using my static library

I'm having LNK2001 issues while building my solution.

The solution has 3 projects, one of them if just a main that returns 0, so I'll exclude it from the problem.

One project (SerialPort) is a .lib that implements a class (SerialPort), while the other (SerialHost) simply creates an instance of SerialPort.

I'm thinking the problem is somewhere in the project settings of SerialHost. Here goes the SerialHost project code:

And building yields:

main.obj : error LNK2001: unresolved external symbol "public: unsigned long __thiscall SerialPort::init(unsigned long,char const *)" (?init@SerialPort@@QAEKKPBD@Z)

I've searched SO for answers and found no solution that cured my problem.

To set the project settings I followed this msnd walkthrough.

I also tried adding specifically the .lib to the Additional Dependencies in Linker-Input.

Then I read this SO thread, and setting the option "Treat wchar_t as build-in type (Properties->C/C++->Language-> ... ) to No still didn't work. I thought it would work because SerialPort::init is declared as

  • it thought the fault was with the use of the LPCTSTR type.

The SerialPort project builds OK (the init method is implemented in the .cpp).

I'm just beginning to work with my own static libs in VS so I may be doing some basic error here.

Thank you in advance for your help!


Additional Info:

I tried commenting out the init and using another method and it built just fine! This code:

in SerialHost just yields the error in init - if I comment init, no linking errors appear.

Here is the implementation for SerialPort

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

c++ - 構造体の const char ポインター宣言

私はこれをやろうとしていますが、私のコンパイラは私を許しません:

構造体宣言で代入を行うことができないためだと思います-それらは関数またはその他で行われるはずです。const char*しかし、変数を割り当てることさえ本当に許可されていないのでしょうか?
誰かが私に欠けているものを教えてくれれば、本当に感謝しています。どうも

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

c++ - constchar*ループ中に値を変更する

を繰り返し、その文字を使用して、認識された一連の文字の1つである場合const char *のインスタンスにオブジェクトを追加する関数があります。std::map

渡される文字シーケンスは次のとおり"++++++++++." です。最初の3回の反復では、printステートメントは「+」、「+」、および「+」の期待値を表示し、の値はs引き続き「++++++++++」です。 +。」。ただし、4回目の反復で、がマングルされ、、、、、および他の多くの文字シーケンスなどのs奇妙な値が生成されます。例外をスローする行が削除され、ループの続行が許可されている場合、の値はその後変更されません。'Ð''öê''cR ''œk's

他の関数はアクセスできますsが、これはマルチスレッドプログラムではないため、なぜそれが重要になるのかわかりません。なぜ変更されるのかについてはそれほど混乱していませんsが、4回目の反復でのみ変更されるのはなぜですか。

私はSOを検索しましたが、関連性があると思われる投稿はこれだけですが、それでも私の質問には答えられません。(「constchar * change value」または同様の用語を検索すると、constの一部について何百もの投稿が表示されるため、調査は困難でした)。

最後に、私はおそらくを使用する必要があることを知ってstd::stringいます。答えが出ない場合は使用しますが、それでもこの動作を理解したいと思います。

編集:

この関数を呼び出すコードは次のとおりです。

どこloadにありますか:

}

そして、ファイルfname++++++++++.1行に1文字になるように広げられます。

編集2:

コンソール出力の例を次に示します。

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

c++ - 文字列に const char 変数を追加する

ユーザー定義関数に渡すことで const char* に変換した 2 つの整数があります。これらの 2 つの変数をコマンド ライン文字列に次のように追加します。

非常に基本的なことは知っていますが、データ型が苦手です。これらの 2 つの const char をここに追加するにはどうすればよいですか? このメソッドは、const char* の二項演算子を示すエラーをスローするため、機能していません。初歩的なことですが、助けてください。

num1 と num2 は変数です