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
- 回答日時:
のプログラムの
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
- 回答日時:
その説明と一緒に添付されているプログラムがあるなら、それも提示していただけると良い回答が付きやすくなるかと思います。
以下の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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
C言語について。
C言語・C++・C#
-
C言語について
C言語・C++・C#
-
C言語について。
C言語・C++・C#
-
-
4
C言語って古いですか?
C言語・C++・C#
-
5
gcc13.2のバグ?
C言語・C++・C#
-
6
卒業研究でよく分からないところがあるので教えて欲しいです。 インバータ用組み込みソフトウェア開発シス
C言語・C++・C#
-
7
WindowsのCapsLock(キャップスロック)って、何の意味があるんですか?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エスケープ文字の復帰(¥r)と...
-
ソースコードの1行が長いとき...
-
ファイルから読み取った改行文...
-
VBAのコマンドボタンの文字列の...
-
C言語について。
-
VBAでCSVをExcelに取り込む時に...
-
JAVA System.out.println の ...
-
ラベル(スタティックテキスト)...
-
FORTRANで作成したテキストファ...
-
改行コードが半角スペースにな...
-
C++でのCRLFについて
-
C++で空Enterの入力を判...
-
英文のピリオドでのみの改行の仕方
-
コンボボックスの項目中に改行を
-
Getlineについて・・・・・・
-
改行が半角スペースに変わる
-
改行だけの行の削除
-
VBS 改行無しのファイル抽出方法
-
エクセルVBAのprintステートメ...
-
テキストボックス行の桁数を制...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
改行について
-
最終行の改行について
-
C++で空Enterの入力を判...
-
【VBA】エクセルで最後の不要な...
-
jsp 改行コードで改行させて表...
-
C++でのCRLFについて
-
ファイルから読み取った改行文...
-
テキストファイルから改行コー...
-
ExcelVBAでメールを作成してメ...
-
awkで改行を除いて文字列を抜き...
-
エクセルVBA 文字列領域が不足...
-
VBAでCSVをExcelに取り込む時に...
-
コンボボックスの項目中に改行を
-
JavaDoc コメントの改行について
-
Excel VBAからBeckyを起動して...
-
改行を読み飛ばす
おすすめ情報