問題タブ [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.
c++ - 文字列を指定してENUM型を調べる方法は?
次のような列挙型クラスがあります。
今のところ、コードでこのように使用していました。
問題文:-
これで文字列が与えられたので、その文字列を使用してから、上記の列挙型を反復して実際の ENUM 型を見つける必要があります。
以下は私のコードです:
test_str
がxml
またはの場合XML
、次のように設定する必要があります。
しかし、test_str
がapplication_json
またはAPPLICATION_JSON
の場合、次のように設定する必要があります。
また、他の人についても同様です。以下は私の完全なコードです:
誰かが私の列挙型にない未知の文字列を渡している場合、デフォルトで次のように使用する必要がありますTestClass::SetContentType(ContentTypeEnum::APPLICATION_JSON)
文字列を指定して正確な列挙型を検索する正しい方法は何ですか?
c++ - c_str は char* の最後にごみを追加します
私は ftp サーバーを構築しています。これは、ファイル サイズがサーバーによって承認されているかどうかを確認するために、クライアントからサーバーに送信されるメッセージです。関数書き込みで char* を使用する必要があるため、文字列を char* に変換したいと考えています。文字列構造は fileName#fileSize(test.txt#37) です。私は c_str を試しましたが、最終的にゴミになりました。
次のコードを見てみましょう。
cout を使用してサーバーにメッセージを出力したい場合は、次のような出力が得られます: test2#37�� またはそれに近いもの。
ゴミはどうやって掃除するの?または char* に変換する他のコマンド?
c++ - C++ のグローバル関数の構造体のメンバーでメソッドを使用する
私は C++ に非常に慣れていないため、常にあちこちでささいなことに遭遇しています。最新のものは、構造体に問題があるようです。
関数「print_student」を使用して、この学生の名前を印刷したい
「Intellisense: 式にはクラス型が必要です」というエラーが表示されます。コンパイラ エラーには、「.c_str の左にはクラス/構造体/共用体が必要です」と表示されます。関数の 3 行目で "record" に赤い下線が引かれ、エラーが発生します。
私はここで迷っています。非常に完全なスコープ名とすべてを使用してみましたが、同じエラーが発生し続けます。何が起こっているのかわからず、エラーは非常に...漠然としているようです。
c++ - fstream .open とファイル名への .txt または .dat の追加
これは一部のコンパイラでは問題なく動作しました... c++11 または c++14 の異なるコンパイラで問題なく動作する場合、これを行う方法はありますか?
エラー: 'basic_string, std::allocator >' から 'const char *' への実行可能な変換がありません
だから私はそれをググって、いくつかの答えを見つけました、またはこの場合はcanswers(癌)を試しました
エラー: バイナリ式のオペランドが無効です ('const char *' および 'const char *')
c++ - cpp-c_str() の値だけを取得する方法
を返す関数がありconst char*
ます。この関数には、次のパラメーターがあります。
str を変換するには、const char*
を使用しますstr.c_str()
。
str.c_str()
デバッグすると、文字列の値の前に何か (アドレスだと思います) が含まれていることに気付きます。例: str="0" の場合、str.c_str()
0x68d5f9 "0" を使用します。それはなぜです?文字列の値だけを取得するにはどうすればよいですか?
c++ - すでに初期化されている他の文字列からインデックスごとの文字をコピーして形成された c++ 文字列。cout を使用して新しく形成された文字列を出力できない
C++ では、既に初期化されている別の文字列 (文字列クラス) からインデックスごとに文字をコピーして、新しい文字列 (文字列クラス) を作成しました。
しかし、を使用してこの新しい文字列を画面に出力できませんcout
。を使用c_str()
して印刷できますcout
。でもac系の文字列が必要なのでc_str()
使う時だけ必要じゃない?printf()
編集:助けてくれてありがとう!しかし、私の質問はあまり明確ではなかったかもしれないので、これらが私が抱えている主な問題です。以下をお読みください。さらにお役に立てれば幸いです。(また、b=a;
割り当てる最も簡単な方法は理解していますが、文字列を理解しようとしているため、質問です。)
a)cpp文字列がいつnullで終了するのか、そうでないのかわかりませんが、この場合、ループが終了し、文字列aの最後の文字の後に終了したため、初期化後の文字列はnullで終了しました。ループしてcout<<a[i];
a の最後の文字を実行すると出力されます。
b) ループ内で、インクルードcout<<b[i];
すると代入後、b[i] に代入されたはずの値が出力されます。したがって、b[i] は奇妙な理由で存在します。
c) for ループの外側、プログラムの最後でcout<<b[2];
、文字列の 3 番目の文字を出力するとき。そして、それを行うcout<<b.c_str();
と、文字列全体が出力されます。私がそうする場合にのみcout<< b;
、何も印刷されません。どうしてこれなの?
c++ - エラー: 'std::string* {別名 std::basic_string から変換できませんでした*}' を 'std::string {別名 std::basic_string}'|
ファイルを書き込む関数を作成しようとしていますが、文字列をパラメーターとして渡す際に問題が発生しています。
そして、このエラーがあります。