問題タブ [strtoull]

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

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 の両方を含めました。

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

c - 条件が false の場合でも if ステートメントが実行される

これが問題のコードです。str = "-1,ABCDEFGH" という形式の文字列と、サイズが 15 バイトの構造体 A があります。

私は事前にこの操作を行っています:

この操作の後、ptr は「,」を指し、number = -1

IF 条件を見ると、最初のステートメントは偽であると評価され (*ptr = ',' のため)、2 番目のステートメントは偽であるはずなのに実行されて TRUE になります ( strlen(ptr+1) は正であり、(sizeof( struct A) * number) は、単に num1 が負の値であるため、負です)。

このステートメントが true であると評価され、IF ブロックに入るのはなぜですか? 「条件が満たされました」という出力が得られますが、そうではありません。前もって感謝します。

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

c - strtoull を C で適切に使用する

だから私はこのような文字列を持っています:

これは一例です。配列にはさらに多くの数字が含まれる可能性がありますが、必ず ] で終わります。

したがって、これを unsigned long long の配列に変換する必要があります。strtoull() を使用できることはわかっていますが、3 つの引数が必要で、その 2 番目の引数の使用方法がわかりません。また、配列を適切な長さにする方法を知りたいです。コードを次のようにしたいと思いますが、疑似コードではなく C:

これはCでそのようにすることは可能ですか?