
No.1ベストアンサー
- 回答日時:
仕組み、指定した文字数分もしくは、1行の文字列の読み込み。
読み込み文字数を超える文字列を読み込ませても、引数で指定した文字数しか読み込みません。当然文字列にはNULLが入りませんので、NULL終わりの文字列として扱うと、最悪はコアダンプ(異常終了)します。
例)
a.txtに
abcdefg[改行]
[EOF]
と有った場合、
FILE *fp;
char buf[11];
fp=fopen("a.txt", "r");
fgets(buf, 10, fp);
この場合bufの中身は"abcdefg[NULL]"([NULL]はNULL文字)となります。
しかしa.txtの中身が
abcdefghijklmn[改行]
[EOF]
となっていた場合は
bufの中身は"abcdefghij"となります。
文字列の最後にはNULLもじは自動的に付加されませんので、制限を越える文字列を読み込みことが想定されている場合は、
buf[10]='0x00'でNULL文字を付加しましょう。
続きの文字列を読み出した場合、bufの中身は"klmn[NULL]"となります。
No.3
- 回答日時:
fgets()は「指定した文字数より1文字少ない文字数」または「1行分」を読み込み「最後に'\0'を付加して」バッファに設定します。
char str[10] ;
fgets(str, 10, stdin) ; // 1234567890改行 と入力
この場合、strは
'1','2','3','4','5','6','7','8','9','\0'
と設定されます。
残りの入力である'0','\n'は次のfgets()呼び出し時に
'0','\n','\0'
として取得されます。
fgets()の入力結果に'\0'が自動的に付加されるのはANSI-Cの仕様です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) 【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か 4 2022/09/29 18:56
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
エクセルで文字列の最大値を抽...
-
VBAでの Replace関数で、ワイル...
-
fgets()の仕組みについてくわし...
-
Excelオートフィルター機...
-
変数内に入った文字列の結合 UWSC
-
LEFT関数で文字数を指定しない...
-
textboxユーザーコントロールの...
-
文字列の最後の文字を置き換え...
-
コンボボックスのドロップダウ...
-
文字列からタブコードを取り除...
-
VBA テキストボックスの計算
-
VBA2005 16進を2桁で表示したい。
-
最も多い文字列を検索するには
-
Excel COUNTIF の仕様について
-
CSV書込みの際、カンマで位置が...
-
【Teratermマクロ】文字列の分...
-
エクセル 数値データを桁をそ...
-
エクセルで文字列をtxtファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
エクセルで文字列をtxtファイル...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
Excelで3E8を3.00E+8にしない方...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列の最大値を抽...
-
同一セル内に関数と文字列を同...
-
Left関数とRight関数を合わせた...
-
Excelで指数表現しないようにす...
-
MS SQLServer のSQLで文字列の...
-
VBの「As String * 128」とは?
-
エクセルでセル内の文字列の最...
-
ORCLEでの小数の表示方法の変更...
-
bashスクリプトでの文字列から...
-
LEFT関数で文字数を指定しない...
-
アクセスで特定の数字以外(複...
おすすめ情報