アプリ版:「スタンプのみでお礼する」機能のリリースについて

dは桁数を指定していないので、1桁目からスペースまたは改行までの数字列を整数に変換することを意味しています。の1桁目からスペースまたは改行までの数字列とはとういう事でしょうか? 教えていただけると嬉しいです。で、つまり、可変長の数字列に用いる事ができるとは、スペースまたは改行で区切るからでしょうか?教え頂けると嬉しいです。

A 回答 (4件)

>可変長の数字列に用いることになるというのはどういう事でしょうか?



1□2□3□4□10⏎ と入力した場合と
1□23□456□7890□12345⏎ と入力した場合とでは、
入力されたデータの長さが違います。
これが、可変長の数字列という意味です。

上記の説明では、わかりにくいので、他の例を挙げます。
テキストファイルに、ある生徒の成績が、記入されています。
左から、英語、数学、国語です。
英語、数学、国語
------------------------
56□78□100⏎・・・・・・・1回目
80□21□31⏎・・・・・・・・2回目
100□100□100⏎・・・・・3回目
(桁数をそろえる為全角で数字を書いていますが実際は半角の数字です)

1回目の英語の点数=56、数学の点数=78、国語の点数=100
となります。
このデータを取得するときに、scanf("%d")(もしくはsscanf)を使用します。
1行目の改行(⏎)までの文字数と
2行目の改行(⏎)までの文字数と
3行目の改行(⏎)までの文字数は全て異なっています。
このようなものを可変長のデータといいます。

一方、それに対して固定長のデータもあります。
同じ点数を以下のように記述します。
英語、数学、国語
------------------------
056□078□100⏎・・・・・1回目
080□021□031⏎・・・・・2回目
100□100□100⏎・・・・・3回目
(桁数をそろえる為全角で数字を書いていますが半角の数字です)

上記の1行目と2行目と3行目の改行までの文字数は全て同じです。
これを固定長のデータといいます。

%dで読み込む場合は、可変長のデータを読み込みことを前提としています。
    • good
    • 0

https://oshiete.goo.ne.jp/qa/13531880.html
のプログラムの
scanf("%d",&inpData);
の行についてと理解しました。

このプログラムを実行すると
input ? 1 2 3 4 10
と表示されます。
ここで
1□2□3□4□10⏎
と入力します。(□は半角スペース、⏎はEnter-Keyです。以降同様)
そうすると、結果が
・・途中省略・・・
kaisuu=5 goukei=20 heikin= 4.000
と表示されます。
これは、
1回目のループで、inpDataに1が設定された。
2回目のループで、inpDataに2が設定された。
3回目のループで、inpDataに3が設定された。
4回目のループで、inpDataに4が設定された。
5回目のループで、inpDataに10が設定された。
ことを示しています。

もし、同様に
input ? 1 2 3 4 10
と表示された後
1□23□456□7890□12345⏎
と入力すると
kaisuu=5 goukei=20715 heikin=4143.000
と表示されます。
これは、
1回目のループで、inpDataに1が設定された。
2回目のループで、inpDataに23が設定された。
3回目のループで、inpDataに456が設定された。
4回目のループで、inpDataに7890が設定された。
5回目のループで、inpDataに12345が設定された。
ことになります。
1回目は、1□なので、1桁目からスペースまたは改行までの数字列を整数に変換すると1になります。
2回目は、23□なので、1桁目からスペースまたは改行までの数字列を整数に変換すると23になります。
3回目は、456□なので、1桁目からスペースまたは改行までの数字列を整数に変換すると456になります。
4回目は、7890□なので、1桁目からスペースまたは改行までの数字列を整数に変換すると7890になります。
5回目は、12345⏎なので、1桁目からスペースまたは改行までの数字列を整数に変換すると12345になります。
    • good
    • 0
この回答へのお礼

すみません。可変長の数字列に用いることになるというのはどういう事でしょうか?教えていただけると嬉しいのです。

お礼日時:2023/07/19 19:07

「1桁目からスペースまたは改行まで」とあるのでこれは文字列ということになります。


で、「1桁目からスペースまたは改行までの数字列」ですから「0から9までの文字数字の列で、処理対象は改行(=テキストレコードの終わりまで)またはスペース(=空白文字)でま」ということです。
なお、特に記載が無いので数字文字とスペースは半角文字でしょう。

参考まで。
    • good
    • 0

その説明と一緒に添付されているプログラムがあるなら、それも提示していただけると良い回答が付きやすくなるかと思います。

    • good
    • 1
この回答へのお礼

以下のURLのプログラムと同じです。
https://oshiete.goo.ne.jp/qa/13531880.html
1桁目からスペースまたは改行までの数字列を整数に変換して入力することを意味しています。の所です。教えていただけると嬉しいのです。

お礼日時:2023/07/19 14:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています