つきすけ の コーディング記

細かいところで嫌にならないように、小さいことでも解説していくブログ。たまに関係ないことも書く。

C言語でファイルの読み込み vs Python

普段はPython、でもたまにCを書かなければならない。
全然覚えられないファイルの読み書き動作を、Pythonと対比することでメモしておく。

※ 無理やり対比させているため、よくある書き方とは全然違う見た目になっています。
※ 本記事の中身は、fgetsとfgetcのみです。

 

1行ずつ取得

C言語

#include<stdio.h>
int main(void){

  FILE *file;
  file = fopen("input.txt", "r");

  char line[256];
  fgets(line, 256, file); // 一行目取得
  printf("%s", line);
  fgets(line, 256, file); // 二行目取得(読み込んだ回数分の行数が取得できる)
  printf("%s", line);

  return 0;
}

 

Python (2系でも3系でも)

#coding:utf-8

file = open("input.txt", "r")

line = file.readline() # 一行目取得
print(line)
line = file.readline() # 二行目取得(読み込んだ回数分の行数が取得できる)
print(line)

file.close()

 

 

1文字ずつ全文字取得

C言語

#include<stdio.h>
int main(void){

  FILE *file;
  file = fopen("input.txt", "r");

  int whole[256];
  int i = 0;
  while(1){
    whole[i] = fgetc(file); // 1文字ずつ取得
    if(whole[i] == EOF){
      break;
    }
    printf("%c",whole[i]);
  }

  fclose(file);

  return 0;
}

 
Python(2系でも3系でも)

file = open("input.txt", "r")

whole = file.read() # 全文字を文字列として取得
print(whole)

file.close()


 

書き込みの対比もした
tsukisuke.hateblo.jp