並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 14 件 / 14件

新着順 人気順

fgetsの検索結果1 - 14 件 / 14件

  • ファイル入出力 (fgets( )!=NULL)

    第17章 ファイル入出力 ファイル入出力関数はキーボードや画面ではなく、ファイルに対して入出力を行います。ファイルは画面出力とは異なり出力結果の保存が可能ですので、覚えておくと何かと重宝します。 尚、ファイル入出力関数を使用するには、#include <stdio.h> する必要があります。 17-1.ファイル操作手順 ファイル入出力は通常、以下の手順で行います。 ファイルポインタとはFILE型へのポインタです。 FILE型では入出力の現在位置(ファイル位置指示子)、ファイルの終端に達したかの情報(ファイル終了指示子)、エラー情報(エラー指示子)、関連するバッファへのポインタなどのファイルの入出力を行う上での必要不可欠な情報を管理しています。 ですから、ファイル入出力を行う際には必ず、このファイルポインタを fopen()によって取得しなければなりません。 また、入出力操作の完了とともに必

    • fgets/feof関数の使い方(ファイルから1行読み込む)

      引数のハンドルで指定したファイルポインタから最大 length - 1 バイト読 み出し、その文字列を返します。読み出しは、length - 1 バイト読み出した か、(返り値 に含まれる)改行文字を検出したか、EOF に達したかのいずれか が起こった時点で終了します。length が指定されない場合、デフォルトは 1k または 1024 バイトとなります。 引数: handle 対象となるファイルのハンドル length 一度に読み込む最大バイト数 返り値: エラーが起こった場合、FALSE 改行が検出されるまでファイルの内容を読み込みます。改行以外でもファイルの最後まで到達したり、最大バイト数を指定している時はそのバイト数に達した段階で終了します。 1行読み込んだ後に再度この関数を実行すると、ファイルポインタは前回実行した際に終わった改行部分の次に設定されています。よって再度この関数を

        fgets/feof関数の使い方(ファイルから1行読み込む)
      • scanf,fscanfは使わず fgets,sscanfのペアを使う

        □scanf,fscanfは使わず fgets,sscanfのペアを使う 入門書において、キーボードからの入力を行うのに、scanf()という関数を用いられることがあります。 特定環境に依存せず、C言語の標準ライブラリの範囲で説明しようとすると(とくに文字列の説明より先に先にキー入力を行いたい場合は)、これを使わざる得ないでしょう。この関数は標準関数で(入門者の用いる)どのコンパイラにまずついていますし、かなり便利な関数です。 ただし、この関数scanfや同類のfscanfは、少し問題があるため、実用プログラムに使われることはまずない、というのも現状です。 最大文字数が指定できないという問題もあるのですが、他にも、たとえば n = scanf("%d %d", &a, &b); のように記述し、入力で 1 2 と入力するところを 1 のみ入力したところで改行をしてしまった場合、a = 1,

        • fgets( ),fputs( )

          fgets( )とfputs( ) fgets( )とfputs( )は1行単位の入出力関数です。 「fgets( ファイルからの1行読み込み)」 (書式) (機能) ファイルポインタfpで示されるファイルから、バッファbufに1行読み込みを行います。読み込みは復改(¥n)に出会うか、n-1個の文字を読み込むまで実行されます。いずれかの条件が満たされると、読み込んだ文字列の最後に、ヌル文字を付加します。fgetsが正常に行われればbufへのポインタが返されますが、ファイルエンドまたはエラーならばNULLを返します。 「fputs(ファイルへの1行書き込み)」 (書式)

          • PHP: fgets - Manual

            Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

            • fgets - Wikipedia

              fgets は stream が示すファイルから改行('\n')または count-1 バイト目まで文字を読み込み、引数で渡された str に格納する。この count-1 バイトの中には改行自体も含まれる。その後文字列の末尾に終端記号 '\0' を付与する。戻り値は stream の先頭が EOF だった場合もしくは途中でエラーが起こった場合は NULL、それ以外の場合は str である。 名称から getsのファイル読み込み版のように思われるが、fgets は gets と異なり引数に最大読み込み文字数を指定する。また gets は末尾の改行を終端記号に置き換えるのに対し、fgets は改行の後ろに終端記号を付与するという点が異なる。 fgets は本来ファイルから文字列を取り出すことを目的とした関数であるが、最大文字列数を引数に指定する事ができるためバッファオーバーランが発生しにくく

              • httpsでfgets()した場合に「SSL: fatal protocol error」が出る | colori

                MicrosoftのIISサーバーとの通信中に「function.fgets: SSL: fatal protocol error …」のエラーメッセージが出る場合があります。 その原因と対策方法について。 IISとの通信中に発生することがある 毎回ではないですが、たまにIISがSSLの標準に準拠せずデータ送信終了してしまうために、PHPはデータの終わりをちゃんと認識することができず、エラーを出してしまいます。 より具体的にはIISは「close_notify」を送らないで終了してしまうのだそうです。 むむ、思わぬ所に地雷が… 「close_notify」とは、データの送信側が「これでデータ終了です」ということを受信側に知らせるために発行するTLSハンドシェイクプロトコルに定義されているAlertプロトコルの一種です。 (参考データ) ちなみに、このエラーはfile_get_content

                • PHPで fgets()する時の改行コード

                  Macの場合、php.iniで「auto_detect_line_endings = on」を指定すれば、改行コードを意識しなくて良いらしい。 auto_detect_line_endingsはデフォルトではコメントアウトされている。 注意: マッキントッシュコンピュータ上で作成されたファイルを読み込む際に、 PHP が行末を認識できないという問題が発生した場合、 実行時の設定オプションauto_detect_line_endings を有効にする必要が生じるかもしれません。 php.iniにはこう書かれている。 ; If your scripts have to deal with files from Macintosh systems, ; or you are running on a Mac and need to deal with files from ; unix or w

                  • C言語 テキストファイルの読み込み - stdio.h - [ fgetc, getc, fgets ] | 勇躍のゴミ箱

                    C言語 目的別 画面への文字出力 画面へ1文字単位で出力 画面へ1行単位で出力 画面へ書式付きで出力 可変個引数を書式付き表示 キーボードから文字入力 入力を1文字単位で取得 入力を1行単位で取得 入力を書式付きで取得 ストリームに1文字戻す 文字列データの入出力 文字列から書式付きで取得 文字列へ書式付きで出力 可変個引数を書式付き出力 ファイルオープン ファイルを開く ファイルを閉じる ファイルオープンのモード 標準入出力について ファイルの読み込み テキストファイルの読込 空白区切りファイルの読込 CSVファイルの読込 バイナリファイルの読込 ファイルの書き込み テキストファイルの書込 CSVファイルの書込 バイナリファイルの書込 可変個引数をファイルへ書込 ファイル関連 ファイル位置の取得 ファイル位置の設定 ファイル位置の取得2 ファイル位置の設定2 ファイル位置を先頭に戻す フ

                    • C言語講座:fgets( )とputs( )

                      [読み込みモードで開く]←このソース→[印字可能な文字の数を数える] /* ソースプログラムの説明 */ /* 今日もファイルを読み込みモードで開き、各行に行番号を付けて標準出力に出力します。まず最初にこのファイルを開いて下さい。このページのソースプログラムをコンパイルしてできたexeファイルと、このファイルを同じディレクトリにおいて実行して下さい。その際、このファイルの名前を必ず、”LTest.c”にして下さい。また、このファイルをコピーアンドペーストするときは、必ず最後のリターンコードまでコピーして下さい。そうしないと、正常に動作しません。読者の方、ご指摘ありがとうございました。 前回は、ファイルから1文字読み込むライブラリ関数、getc( ) と、標準出力に1文字出力する関数、putchar( ) を、使いました。今回は、行単位で文字列を読み込む関数と、書き込む関数、fgets( )

                      • FIO36-C. fgets() が改行文字を読み取ると仮定しない

                        FIO36-C. fgets() が改行文字を読み取ると仮定しない fgets() 関数は通常、改行で終わる行を入力ストリームから読み込むために使用される。fgets() 関数は、サイズ引数をとり、最大で size-1 文字をストリームからコピー先バッファにコピーする。プログラマがコピー先文字列の最後の文字に必ず改行が入っていると思い込むと、切り捨てエラーが発生する可能性がある。 違反コード 以下のコード例では、入力行から末尾の改行(\n)を削除しようとしている。 char buf[BUFSIZ + 1]; if (fgets(buf, sizeof(buf), fp)) { if (*buf) { /* FIO37-Cを参照 */ buf[strlen(buf) - 1] = '\0'; } } else { /* エラー処理 */ } しかし、buf の最後の文字が改行でない場合、この

                          FIO36-C. fgets() が改行文字を読み取ると仮定しない
                        • fgetsでファイルを読み込むためのバッファの大きさ設定方法 - シリコンの谷のゾンビ

                          C言語初心者向けメモ. 僕はファイル処理をする場合にはfgetsを多用するのだけれど,その際 #define BUFFLEN 102400 char buff[ BUFFLEN ]; とか,スタック領域に乗らない程大きな領域であれば char *buff = malloc(sizeof(char) * BUFFLEN); というようにゆとり領域を用意してしまう. fgetsで一行ずつ処理を行いたい場合には,上記buffの大きさはファイルにおける最大幅あれば十分.ただし,最大幅を知るためには一度ファイルを走査する必要がある.というわけでファイルの行あたりの最大文字幅を決めてから,バッファを用意してfgetsでファイルを読み込むコードを書いてみた. その際に「あ,これはハマりそうだな」という点に気がついたのでメモ. こんな感じでfgetcを使って幅を調べる. #include <stdio.h

                            fgetsでファイルを読み込むためのバッファの大きさ設定方法 - シリコンの谷のゾンビ
                          • /* fgets() Dane! */

                            [ gets / fgets / scanf / getchar // メニュー ] 使おう…fgets! まずは fgets() について メモ:gets()から見た違いとか 指定したファイルのバッファから、指定した文字配列へ、改行コード:'\n' か EOF が来るまで char 型データを取り込み、指定した文字配列またはNULLを返す。 ただし取り込むのは'\n'を含む、最大"指定した桁数-1"桁までで、最後に終端コード'\0'を付加する。 桁数制限による終了時には、'\n'なしの"指定桁数-1"桁の文字列に'\0'が付加され、ちょうど指定桁数に収まる。(尻切れ発生) 桁数制限による終了時、指定したファイルのバッファにはまだデータが残っている。 fgets() に限らず stdin からの取り込みを桁数制限する場合は、尻切れの発生したデータをどう扱うかを考えた方がいいでしょう。また、

                            • Big Sky :: Win32でソケットディスクリプタに対してfgets/fprintfを呼び出す方法

                              nayoyaグループ - naoyaの日記 - Gearmanのやつ#2 clouderさんは結局、MSG_WAITALLを使う方法を取られたようですね。個人な趣味としてはあまりMSG_WAITALLは使わないほうなので、きっと私の場合はループを回すかな。 理由は大した事ではなく、サーバ側で「Content-Length」を出力し、そのContent-Length数分データを送信するようなCGIを書いた場合、バグで「Content-Length」分満たない内に落ちてしまった場合に、クライアントの受信がMSG_WAITALLだとバッファ全部破棄されてしまいエラーハンドリングし辛いからです。 (※たとえばどこまで受信したかが分からないとか...) 今日は本題から外れますが、上記リンクの中にも出てきたソケットディスクリプタから「fdopen」する処理をWindowsではどう書くかをご紹介。 HT

                                Big Sky :: Win32でソケットディスクリプタに対してfgets/fprintfを呼び出す方法
                              1