C言語でファイルの読み込み vs Python
普段はPython、でもたまにCを書かなければならない。
全然覚えられないファイルの読み書き動作を、Pythonと対比することでメモしておく。
※ 無理やり対比させているため、よくある書き方とは全然違う見た目になっています。
※ 本記事の中身は、fgetsとfgetcのみです。
1行ずつ取得
#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文字ずつ全文字取得
#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