Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語の高レベルI/O関数とは何ですか?


I / Oは、C言語の入出力関数を指します。

高レベルI/O

  • これらは人間が簡単に理解できます
  • 利点は移植性です。

低レベルI/O

  • これらはコンピューターで簡単に理解できます。
  • 利点は、実行時間が短いことです。
  • 欠点は、移植性がないことです。

高レベルのI/O機能

高レベルの入出力(I / O)機能について以下に説明します-

関数 説明
fprintf() データをファイルに書き込む
fscanf() ファイルからデータを読み取る
putc()/ fputc() ファイルに文字を書き込む
getc()/ fgetc() ファイルから文字を読み取る
putw() ファイルに数値を書き込む
getw() ファイルから番号を読み取る
fputs() ファイルに文字列を書き込む
fgets() ファイルから文字列を読み取る
fread() ファイルからレコード全体を読み取る
fwrite() レコード全体をファイルに書き込む

fprintf()およびfscanf()関数

  • fprintf()

構文は次のとおりです-

fprintf (file pointer, " control string”, variable list)

たとえば、

FILE *fp;
fprintf (fp, "%d%c”, a,b);
  • fscanf()

構文は次のとおりです-

fscanf(file pointer, "control string”, & variable list);

たとえば、

FILE *fp;
fscanf (fp, "%d%c”, &a,&b);

putc()およびgetc()関数

  • putc()

ファイルに文字を書き込むために使用されます。

構文は次のとおりです-

putc (char ch, FILE *fp);

たとえば、

FILE *fp;
char ch;
putc(ch, fp);
  • get c()

ファイルから文字を読み取るために使用されます。

構文は次のとおりです-

char getc (FILE *fp);

たとえば、

FILE *fp;
char ch;
ch = getc(fp);

C言語の高レベルI/O関数とは何ですか?

putw()およびgetw()関数

  • putw()

数値をファイルに書き込むために使用されます。

構文は次のとおりです-

putw (int num, FILE *fp);

たとえば、

FILE *fp;
int num;
putw(num, fp);
  • getw()

ファイルから番号を読み取るために使用されます。

構文は次のとおりです-

int getw (FILE *fp);

たとえば、

FILE *fp;
int num;
num = getw(fp);

C言語の高レベルI/O関数とは何ですか?

fput c()およびfgetc()関数

  • fputc()

ファイルに文字を書き込むために使用されます。

構文は次のとおりです-

fputc (char ch, FILE *fp);

たとえば、

FILE *fp;
char ch;
fputc (ch.fp);
  • fgetc()

ファイルから文字を読み取るために使用されます。

構文は次のとおりです-

fputc (char ch, FILE *fp);

たとえば、

FILE *fp;
char ch;
ch = fgetc(fp);

fgets()およびfputs()関数

  • fgets()

ファイルから文字列を読み取るために使用されます。

構文は次のとおりです

fgets (string variable, No. of characters, File pointer);

たとえば、

FILE *fp;
char str [30];
fgets (str,30,fp);
  • fputs()

文字列をファイルに書き込むために使用されます。

構文は次のとおりです-

fputs (string variable, file pointer);

たとえば、

FILE *fp;
char str[30];
fputs (str,fp);

C言語の高レベルI/O関数とは何ですか?

fread()およびfwrite()関数

  • fread()

一度にレコード全体を読み取るために使用されます。

構文は次のとおりです-

fread( & structure variable, size of (structure variable), no of records, file pointer);

たとえば、

struct emp{
   int eno;
   char ename [30];
   float sal;
} e;
FILE *fp;
fread (&e, sizeof (e), 1, fp);
  • fwrite()

一度にレコード全体を書き込むために使用されます。

構文は次のとおりです-

fwrite( & structure variable , size of structure variable, no of records, file pointer);

たとえば、

struct emp{
   int eno:
   char ename [30];
   float sal;
} e;
FILE *fp;
fwrite (&e, sizeof(e), 1, fp);

サンプルプログラム

以下は、1から10までの数字を格納し、同じものを印刷するためのCプログラムです-

//Program for storing no’s from 1 to 10 and print the same
#include<stdio.h>
int main( ){
   FILE *fp;
   int i;
   fp = fopen ("num.txt", "w");
   for (i =1; i<= 10; i++){
      putw (i, fp);
   }
   fclose (fp);
   fp =fopen ("num.txt", "r");
   printf ("file content is");
   for (i =1; i<= 10; i++){
      i= getw(fp);
      printf ("%d",i);
   }
   fclose (fp);
   return 0;
}

出力

上記のプログラムを実行すると、次の結果が得られます-

file content is12345678910

以下に示すのは、5人の学生の詳細をファイルに保存し、fread()とfwrite()を使用して同じものを印刷するための別のCプログラムです-

#include<stdio.h>
struct student{
   int sno;
   char sname [30];
   float marks;
   char temp;
};
main ( ){
   struct student s[60];
   int i;
   FILE *fp;
   fp = fopen ("student1.txt", "w");
   for (i=0; i<2; i++){
      printf ("enter details of student %d\n", i+1);
      printf("student number:");
      scanf("%d",&s[i].sno);
      scanf("%c",&s[i].temp);
      printf("student name:");
      gets(s[i].sname);
      printf("student marks:");
      scanf("%f",&s[i].marks);
      fwrite(&s[i], sizeof(s[i]),1,fp);
   }
   fclose (fp);
   fp = fopen ("student1.txt", "r");
   for (i=0; i<2; i++){
      printf ("details of student %d are\n", i+1);
      fread (&s[i], sizeof (s[i]) ,1,fp);
      printf("student number = %d\n", s[i]. sno);
      printf("student name = %s\n", s[i]. sname);
      printf("marks = %f\n", s[i]. marks);
   }
   fclose(fp);
   getch( );
}

出力

上記のプログラムを実行すると、次の結果が得られます-

enter details of student 1
student number:1
student name:bhanu
student marks:50
enter details of student 2
student number:2
student name:priya
student marks:69
details of student 1 are
student number = 1
student name = bhanu
marks = 50.000000
details of student 2 are
student number = 2
student name = priya
marks = 69.000000

  1. C言語でのシフト演算とは何ですか?

    問題 C言語を使用して、数値の左シフト、右シフト、および補数を表示する簡単なプログラムは何ですか? 解決策 左シフト 変数の値が1回左シフトされると、その値は2倍になります。 たとえば、a =10、次にa <<1 =20 右シフト 変数の値を1回右シフトすると、その値は元の値の半分になります。 1 =5 例 以下はシフト操作のCプログラムです- #include<stdio.h> main (){    int a=9;    printf("Rightshift of a = %d\n",a&

  2. C言語でのさまざまな検索手法は何ですか?

    検索手法とは、要素のリストから重要な要素を見つけることです。 指定された要素がリストに存在する場合、検索プロセスは成功したと言われます。 指定された要素がリストに存在しない場合、検索プロセスは失敗したと言われます。 C言語は、2種類の検索手法を提供します。それらは次のとおりです- 線形検索 二分探索 線形探索 キー要素の検索は直線的に行われます。 これは最も簡単な検索手法です。 リストが並べ替えられることは想定されていません。 制限-より多くの時間を消費し、システムの電力を削減します。 入力(i / p) ソートされていない要素のリスト、キー。 出力(o /