あなたのファイルを付けて、ファイルには、与えられたREAD4方法で読み取ることができ、n文字を読むためにそれを有効にする方法を実装します。
READ4方法:
APIのREAD4はファイルから連続する4つの文字を読み、キャッシュアレイBUFに書き込むことができます。
戻り値は実際に読んで文字の数です。
それ自体はC言語のFILE * fpのに非常によく似たファイルポインタを、持っている()READ4注意してください。
READ4定義:
パラメータタイプ:[] BUFのchar型
の戻り値の型を:int型
注:BUF []は宛先バッファ・キャッシュの源ではない、返さREAD4結果は[]、それらのBUFにコピーされます。
次はREAD4の使用のいくつかの例です:
ファイルのファイル(「ABCDEFGHIJK」); // ファイル名「ABCDEFGHIJK」、最初のファイルポインタ(FP)指し「」
のchar [] =新しい新しいチャーBUFの[4]、それは十分に受けることができるように、//バッファを作成します文字
READ4(BUF); // 4を返しますREAD4。今、 'E'に= "ABCD"、FPポイントをbufを
READ4(BUF); //はREAD4 4を返します。今、 '私は'に= "EFGH"、FPポイントbufを
READ4 3を返す//;(BUF)READ4を。今bufを=「IJK」、FPのポイントは、ファイルの最後に
読ん方法:
READ4方法を使用することにより、読み取り方法を実現しています。この方法は、キャッシュ・アレイ・bufにそれを読むのn文書から文字を格納することができます。あなたは、ファイルを直接操作することはできません。
戻り値は実際に読んで文字です。
定義をお読みください。
パラメータタイプ:[] BUFをCHAR、INT N
型返す:INTを
注意:bufが[]宛先バッファ・キャッシュの源ではない、あなたは[]でBUFに結果を記述する必要があります。
例1:
入力:ファイル= "ABC"、N = 4
出力:3
説明:あなたはランドメソッドを実行し、 "ABC"を含める必要がありBUF。3を返し、3つの文字の合計ファイル。「ABC」は、bufはあなたが宛先バッファの結果を記述する必要があること、ファイルの内容ではなく、BUFの内容であることに注意してください。
例2:
入力:ファイル= "ABCDE"、N = 5つ
の出力:5
説明:あなたはランドメソッドを実行し、 "ABCDE"を含める必要がありBUF。5つの文字の合計ファイルなので、5が返されます。
例3:
入力:ファイル= "abcdABCD1234"、N = 12
出力:12
説明:あなたはランドメソッドを実行し、 "abcdABCD1234"を含める必要がありBUF。12文字の合計ファイルなので、12を返します。
例4:
入力:ファイル= "leetcode"、N = 5つ
の出力:5
説明:あなたはランドメソッドを実行し、 "leetc"を含める必要がありBUF。5つの文字の合計ファイルなので、5が返されます。
注意:
あなたは、直接ファイルを読み取り専用にすることができ、ファイルを操作することはできませんが、READ4を介して取得することはできません。
読み込み機能をテストケースごとに一度だけ呼ばれます。
あなたは、ターゲットバッファ配列が十分なn個の文字を保存するのに十分なスペースがあることを確認BUFと仮定することができます。
分析:
このトピックでは、読みの文字数を返し、それぞれが4つの文字(4が存在する場合)、ない4を読んで、短期では、APIのREAD4を持って、質問を理解することは少し難しいです。後二回READ4呼ば例えばS =「ABC」のため、最初の呼び出しが終了した後、0秒を返し、[「A」、「B」、「C」]と同じbufは、それが問題を解決するためのものですキー。すべてのレコードを読み取る可変の開始位置から始めて、文字の最終的な数は、実際に読まれています。
「」「 READ4 APIは、すでにあなたのために定義されています。 @param bufが、文字のリストは、 整数@return デフREAD4(BUF): 。以下は、#はREAD4 APIを呼び出すことができる方法の例である ファイルは=ファイル(」ABCDEFGHIJK ABCDEFGHIJK "最初は''へのポインタ(FP)のポイントをファイル「)#ファイルがある" 文字を格納するために十分なスペースとバッファー* 4位作成BUF = [」「] READ4(BUF)#READ4 [4.今すぐ= bufを返します。 'A'、 'B'、 'C'、 'D']、 'E'にFP点 READ4(BUF)次に= bufを4を返しREAD4#[ 'E'、 'F'、 'G'、「H ']、FPにポイント'i'は 戻りREAD4 READ4(BUF)#3すぐBUF = [' i」は、 'J'、K 'を'、...]、ファイルの最後にFPのポイント 「」「 クラスのソリューション(オブジェクト): デフ(自己、BUF、n個)をお読みください。 『』」 :タイプBUF:送信先のバッファ(一覧[STR]) :N-型:文字の数(int)を読むために :RTYPE:実際の文字読み取り(int型)の数の ""」 。TEMP、[スタート] = [ ''] * 4、 0 CUR = READ4(TEMP) 一方スタート<N-とCUR: #直接拡張または+ない BUFを[スタート:スタート+ CUR] = TEMPの[:CUR] スタート+ = CUR CUR = READ4(TEMP) #Nオーバー全長プレースホルダの後ろに多くがあるので''、(BUF)のbuf事実をlenはできません :N->起動した場合 、リターンスタート #は続きを読む :のelif [スタート]> [N-を :逆転(レンジ(N-、[スタート]))でI用 buf.pop (ⅰ) nは返します