No.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で読み込む場合は、可変長のデータを読み込みことを前提としています。
No.3
- 回答日時:
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になります。
のプログラムの
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になります。
No.2
- 回答日時:
「1桁目からスペースまたは改行まで」とあるのでこれは文字列ということになります。
で、「1桁目からスペースまたは改行までの数字列」ですから「0から9までの文字数字の列で、処理対象は改行(=テキストレコードの終わりまで)またはスペース(=空白文字)でま」ということです。
なお、特に記載が無いので数字文字とスペースは半角文字でしょう。
参考まで。
No.1
- 回答日時:
その説明と一緒に添付されているプログラムがあるなら、それも提示していただけると良い回答が付きやすくなるかと思います。
この回答へのお礼
お礼日時:2023/07/19 14:23
以下のURLのプログラムと同じです。
https://oshiete.goo.ne.jp/qa/13531880.html
1桁目からスペースまたは改行までの数字列を整数に変換して入力することを意味しています。の所です。教えていただけると嬉しいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラムについて。 5 2023/07/18 22:46
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- PDF C#でfloatを整数部、小数部とも桁数固定で文字表示したい 2 2022/07/28 09:37
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) EXCEL 和暦を西暦に変換する方法について 4 2023/03/02 20:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
ファイルの内容をstrcpyを使っ...
-
エクセルVBA 文字列領域が不足...
-
C++で空Enterの入力を判...
-
改行を読み飛ばす
-
delphi でのコード上でTab を入...
-
jsp 改行コードで改行させて表...
-
変数の中の改行コードをBRタグ...
-
ファイルから読み取った改行文...
-
文の改行
-
C# csvでセル内で改行するには
-
改行について
-
awkの BEGIN{RS=""} で空行を削...
-
VBA テキストボックスの行数取得
-
1行ごとに取得して、その改行...
-
C言語の標準入力で改行しない方法
-
ダイアログにおける改行
-
FORTRAN95の改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
C++で空Enterの入力を判...
-
改行について
-
ファイルから読み取った改行文...
-
jsp 改行コードで改行させて表...
-
C++でのCRLFについて
-
エクセルVBA 文字列領域が不足...
-
テキストファイルから改行コー...
-
JavaDoc コメントの改行について
-
最終行の改行について
-
JavaMail,本文中の改行について
-
【VBA】エクセルで最後の不要な...
-
文の改行
-
VBAでCSVをExcelに取り込む時に...
-
ラベル(スタティックテキスト)...
-
改行コード(CR/LF)の設...
-
テキストボックス行の桁数を制...
おすすめ情報