問題タブ [strtol]
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 - cのstrtolで一貫した値が得られません。ストトルはどのように機能しますか?
私は次の字句解析器を書きました。c&3&f、(3|6)&c、f^1 などの入力に対して正しく機能します。ただし、strtol の結果は一貫していません。<3|3 を実行すると、最初の 3 つの値で 16 進数の 3 が 10 進数の 8 に変換され、2 番目の値で正しく 3 に変換されます。これが私のプログラム全体です。問題は最後の関数にあります。コードをデバッグするために printf を追加しました。(テキスト ファイルを stdin < に渡して実行します。各行の新しい式)
コードは次の場所にもあります: Github
c&3&f および <3|3 に対して実行した結果は次のとおりです。
ご覧のとおり、2 番目の式の最初の "TOKEN int" 値は 3 である必要がありますが、8 が返されます。その後、3 が 3 に正しく変換されます。なぜこれが起こっているのか誰にも分かりますか?strtol はどのように 10 進数に変換されますか?
c - strtol の文字列への int 配列
私は手に入れたい
のような strtol 関数で使用するには
ストロールで使用する記号をキャストする方法がわかりません。私が使用しているとき
すべてが順調で、そのような結果を得たいと思っています。
助けてください :)
c# - strtol に相当する (基本パラメーターを指定する) C# を見つける
c# で astring
を aに変換する必要があります。現在strtollong
を使用してこれを行う C++ プログラムを移植しています。MSDNはデータ型を「符号付き 64 ビット整数」と定義しているため、次のコード行を使用して C# で変換を行います。long
strtol
ただし、私の質問は、使用するベース値をどのように指定するのSystem.Convert...
ですか? (Do I even need it?)? この C++ ユーティリティに相当する C# について他にも質問があることは知っていますが、パラメーターの同等化について質問するものは見つかりませんでした。
の定義strtol
は次のとおりです。long int strtol (const char* str, char** endptr, int base);
c - トークンから符号なし出力奇数値へ
タイトルが示唆しているように、strtoul から奇妙な戻り値が得られているため、strcpy を使用してデータを文字列として格納するだけでテストしましたが、正しい値が得られましたが、使用して unsigned int に変更しようとするとすぐにstrtoul() 奇妙な結果が得られ、それを修正する方法が見つかりません。私のコードは次のとおりです。
ロードされているデータは datapos = 5: および token = 3333: であり、印刷される結果は... 「郵便番号に 255 が正常に追加されました」です。
上記のように、入力を変更せず、ケース 5: を strtoul() の代わりに strcpy() に変更しなくても機能しますが、フラグ -pedantic -ansi および -Wall に従っていないため、これを行うことはできません。100%必要です。
ps: 必要に応じて POSTCODE_LEN は 4 として定義され、stdlib.h と string.h の両方を含めました。