データのいくつかの例は、読み取りおよび書き込みIO C言語

fgetc関数はint(FILE *ストリーム)
FPUTCの整数(INTのCH、FILE *ストリーム)
のfgetc()関数は、入力ストリームの現在の位置から文字を返し、もしファイルの終わりに次の文字ポインタにファイルポインタ関数は、この時点では、EOFを返し、ファイルの読み込みと書き込みの完了は、ファイルを閉じなければなりません場合は、この操作の終了を表します。
FPUTCの()関数は、移動後の現在の位置によって指定された文字CHストリームファイルの完了時に値を書き込み、ファイルポインタ。FPUTCの()関数の戻り値が書き込まれた文字の値であり、戻ってエラーをEOF。

fscanfは、INT(ストリームFILE *、CHAR *フォーマット、arg_list)
int型の関数fprintf(ストリームFILE *、CHAR *フォーマット、arg_list)
ファイル形式は、上述した関数fの前に文字が読み取られるが(関数fscanfなる)とfprintfの( ) 
前記ストリームのストリームファイルポインタ、残りの2つのパラメータのscanf()とのprintf()と同じを使用。

CHAR *関数fgets(CHAR * STR、 INT NUM、FILE *ストリーム)// データの行感じて読んで
int型のfputs(char型* STR、FILE *ストリーム)
のfgets()関数は、ほとんどのNUM-1文字の中に、ストリームファイルからのストリームを読み込みます。とに文字配列strのポイントにそれらを置きます。、または定義された文字を読むまで、キャリッジリターンまたはEOF(ファイルの終わり)まで遭遇した文字を読み込みます。
fputs()関数は、文字列strの尖ったストリームファイルを書き込みます。操作が成功した場合、関数戻り0は、そうでなければゼロ以外の値を返します。 

freadはint型(void *型bufに、int型のサイズ、int型のCOUNT、FILE *ストリーム)
INTますfwrite(void *型bufに、int型のサイズ、int型のCOUNT、FILE *ストリーム)
のfread()関数は、カウント(フィールドの数有向ストリームファイルストリームから読み込みます)フィールド、各フィールドのサイズ(フィールドの長さ)文字、およびそれらBUFを入れ(文字配列は、バッファによって指されます)。
fread()関数は、実際に読み込まれたフィールドの数を返します。フィールドを読み取るための関数呼び出しの必要な数は、ファイルに格納されているフィールドの数、エラーまたはファイルの終わりを超えた場合、検出は、実際の動作点に留意すべきです。
数(フィールド数)の文字列BUF(バッファ)点()の関数fwrite関数が長く、各フィールドのサイズの文字を書き込まれたストリーム尖ったストリームをフィールド書かれた場合、機能は、動作フィールドを返します番号。
ファイルを作成するときにブロックへの読み取りと書き込みのファイルについて、あなただけのバイナリファイル形式を作成することができます。

 

典型的には、入力データのより複雑な形式のために、我々は、様々な形式のデータ列を入力として取ることができ、その後、所望のフォーマットに文字列を変換します。Cは、機能を提供する:
INT ATOI(CHAR * PTR)
フロートatof(CHAR * PTR)
ロングint型アトル(CHAR * PTR)は
、それぞれ、整数、実数、及び長い文字列を整数に変換します。含まれているか、プログラムの前に書かれたSTDLIB.Hのmath.hヘッダーファイルを使用してください。

 

コードをコピー

#include「stdafx.hを」
する#include <stdio.hに> 

//ファイルから読み込まれ、その後、画面に表示するために、一つ一つ指定したテキスト文字内のファイルを読み書きするために、ディスク上に保存されます。
メインINT(INTのARGC、CHAR * ARGV [])
{ 
    チャーCH; 
    FILE * FP; 
    INT I、

    IF((FP =のfopen(ARGV [1]、 "R&LT"))== NULL)のargvによって/ *オープンA [1]ファイル* /を参照
    { 
        のprintf( "NOTオープン"); 
        戻り0; 
    } 

    ながら(!(CH = fgetc関数(FP))がEOFを=)/ *文字* / {画面に、ファイルから読み込ま
        putchar(CH); //同じ時間のprintf( "(%d)は、"印刷する場合 、CH);のputchar 中国を正しく表示することができません
    } 

    fcloseを(FP); 
    のprintf( "Hello Worldの\ N-!"); 
    の戻り0; 
}

コードをコピー

コードをコピー

#include "stdafx.hを" 
する#include <stdio.hに> 
する#include <string.hの> 

ディスクへの書き込み//文字列、およびテキストファイルtest.txtという書き込み:
int型のmain(int型のargc、char型* ARGVを[] )
{ 
    FILE * FP; 
    CHAR STR [128]; 

    IF((FP =のfopen( "test.txtの"、 "W"))== NULL)
    { 
        のprintf( "NOTオープン"); 
        戻り0; 
    } 

    一方(( !strlenを((STR)を取得) )/ *)= 0 文字列の長さは、端* /次に、ゼロである場合
    、{ 
        fputs(STR、FP); / *文字列を書き込む* / 
        fputs( "\ N-"、FP)は、/ *書き込みキャリッジリターン* / 
    } 

    fcloseを(FP); 
    のprintf( "Hello Worldの\ N-!"); 
    の戻り0; 
}

コードをコピー

コードをコピー

#include「stdafx.hを」
する#include <stdio.hに> 

//テキストファイルをフォーマットし、一部のデータ書き込み、および、書式設定方法は、画面上に表示読み込むファイルから
//フォーマットされたデータ名前、学生番号、2人の被験者の結果を含む2つの学生の記録、。
INTメイン(int型ARGC、CHAR * ARGV [])
{ 
    FILE * FP; 
    INT I、
    構造型の構造体STU {/ *定義* / 
        チャー名[15]; 
        CHAR NUM [6]; 
        フロートスコア[2]; 
    }学生; / *説明構造体変数* / 

    IF((FP =のfopen( "test.txtの"、 "W"))== NULL)/ * * /だけ書いたテキストファイルを開き
    、{ 
        のprintf(「開いているファイルをすることはできません"); 
        戻り0; 
    } 
    のprintf("入力データ:\ N- "); 
    I <2;(I = 0のためのI ++)
    { 
        scanfの(" %S%F%F%S」、student.name、学生。 NUM、
            &student.score [1]); / * キーボードからの入力* / 
        fprintfの(FP、 "%S%S%7.2f%7.2f \ N-"、student.name、student.num、
            student.score [0]、
            学生.score [1]); / *ライトファイル* / 
    } 
    FCLOSE(FP); / *クローズファイル* / 

    IF((FP =はfopen( "test.txtの"、 "R&LT"))== NULL)/ *読み取り専用のテキストファイル* /再度開く
    { 
        のprintf(「開くことができないファイル」); 
        の戻り0; 
    } 

    のprintf(「ファイルからの出力:\ N-を」); 
    //関数fscanfスキャン機能のみをスキャン形式を固定され、かどうかラップはラップしません。ラインは半分だけデータが戻さ以下走査される走査場合
    (関数fscanf(FP一方、 "% S%%F%F \ n"は、student.name、student.num、&student.score [0]、&student.score [1])!= EOF) / * ファイルから読み込ま* / {
        printf( "%S%S% 7.2f%7.2f \ n"は、student.name、student.num、student.score [0]、student.score [1]); / * 画面* /への表示
    } 

    FCLOSE( FP); / *クローズファイル* / 
    
    printfの( "Hello Worldの\ N-!"); 
    の戻り0; 
}

コードをコピー

 

コードをコピー

#include "STDAFX.H" 

INTメイン(int型ARGC、CHAR * ARGV [])
{ 
    FILE * FP1、
    INT I、
    構造体の構造体STU {/ *定義* / 
        チャー名[15]; 
        CHAR NUM [6]; 
        フロートスコア[2]; 
    }学生; 

    IF((FP1 =のfopen( "test.txtの"、 "WB"))== NULL)/ *バイナリ書き込み中* /のみ開いているファイル
    { 
        のprintf( "ファイルを開くことができません") ; 
        戻り0; 
    } 
    のprintf( "入力データ:\ N-"); 
    (; I <2、I = 0 I ++)用
    { 
        scanfの( "%S%F%F%S"、student.name、student.num、 &student.score [0]、&student.score [1]); / * 入力レコード* / 
        fwriteの(&学生、はsizeof(学生),. 1、FP1)。/ *ブロックは、ファイル* /書き込まれる
    } 
    FCLOSE(FP1)。

    IF((FP1 =のfopen( " test.txtの"、 "RB"))== NULL)/ * のみへの書き込み* /バイナリファイルを再開く
    { 
        ( "ファイルを開くことができません")のprintf; 
        戻り0; 
    } 
    のprintf( "ファイル出力:\ N- "); 
    (I = 0、I <2; I ++)のために
    { 
        関数fread(&学生、はsizeof(学生),. 1、FP1); / *ブロック* /にファイルから読み出さ
        のprintf(" %S %S%7.2f%7.2f \ n 」、student.name、student.num、student.score [0]、student.score [1]); / * 画面* /への表示
    } 
    FCLOSE(FP1)
    
    のprintf( )の"Hello World \ N-!"; 
    の戻り0; 
}

コードをコピー


生と死の別の例は、してくださいアドバイスではありません。

コードをコピー

#include "stdafx.hを" 
する#include <stdio.hに> 
する#include <string.hの> 

ディスクへの書き込み//文字列、およびテキストファイルtest.txtという書き込み:
int型のmain(int型のargc、char型* ARGVを[] )
{ 
    ファイル* FP1、FP2 *; 
    チャーSTR [128]; 
    。IF((FP1 =のfopen( "test1.txtという"、 "R&LT"))== NULL)/ *読み取り専用ファイル* 1 / 
    { 
        printfの( "CAN開いていないファイル\ N-"); 
        戻り0; 
    } 

    IF((FP2 =のfopen(==))、 "W" "test2.txtという名前である" NULL)のみ* 2 /書き込み用/ *オープンファイル
    { 
        のprintf( "開けませんファイル\ N-"); 
        戻り0; 
    } 

    ながら((strlenを(関数fgets(STR、128、FP1)))> 0)
    { 
        fputs(STR、FP2)。/ *読むファイルから文字列とファイル1を書き込む* 2 / 
        のprintf( "%のS"、STR); / * *画面表示に/ 
    }
    FCLOSE(FP1)。
    FCLOSE(FP2)。
}

コードをコピー

公開された407元の記事 ウォンの賞賛150 ビュー380 000 +

おすすめ

転載: blog.csdn.net/ds1130071727/article/details/103387582