割とファイルを行ごとに処理することが多いので
必要な関数を作ってみた。動作確認はしていないけどね。
ところで番号とそれに対応する逆着眼数のデータがあって、
対応関係を保持しつつ、逆着眼数が多い順に並べ替えるなら
やっぱり構造体を使うのが一番楽なんだろうか?
#include <stdio.h>
#include <stdlib.h>
char *readfile(const char *); // ファイル全体を文字列として返す
int lnlen(const char *); // 文字列の行数を返す
char **splitln(char *, int *); // 文字列を行ごとに分割し、さらに各行頭へのポインタ列を返す
char *readfile(const char *file) {
FILE *fp;
char *str, *p;
int byte = 0;
if ((fp = fopen(file, "r")) == NULL) {
return NULL;