みそしりんぐ

現在進行形みそしる

C言語コピペ集

学校ではC言語で書かなければならないものが多いのですが,何回書いてもすっぽりぬけるので,個人的まとめ.
ってことで以下本当に初歩の初歩のコピペ集
(書くのに要した時間約30分程度という適当感満載なかんじなのできっと間違いがある)

テンプレート

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	return 0;
}

どうでもいいけどreturnよく打ち損じます.

上の方

#define MISO 46
void misoshiru(int wakame, char tofu[][MISO]);

ループ

for (; ;) {
	for (; ;) {
		for (; ;) {
			for (; ;) {
			}
		}
	}
}
while(1) {
}

入力

scanf("%d", &i);
gets(str);

ファイル

開く
if ((fp = fopen(fname, "a")) == NULL) {
	printf("can't open a file\n");
	exit(1);
}
モード 動作 ファイルがあるとき ファイルがないとき
"r" 読み出し専用 正常 NULL
"w" 書き込み専用 上書き 新規作成
"a" 追加書き込み専用 最後に追加 新規作成
"r+" 読み込みと書き込み 正常 NULL
"w+" 書き込みと読み込み 上書き 新規作成
"a+" 読み込みと追加書き込み 最後に追加 新規作成
読み込み
while(fgets(row, sizeof(row), fp) != NULL) {
	// 処理
};
出力
fprintf(fp, "%d", i);
fputs(str, fp);
閉じる
fclose(fp);

配列

int *a;
a = (int *)malloc(sizeof(int)*size);
a = (int *)realloc(a, sizeof(int)*size);

構造体

// 型定義
typedef struct {
	char name[20];
	char ingredients[20];
} misoshiru_t;

// 宣言
misoshiru_t Sinsyu = {"信州みそ", "わかめ"};
misoshiru_t Japan[20] = {
	{"加賀みそ", "油揚げ"},
	{"麦みそ", "豆腐"},
	{"赤みそ", "ネギ"}
};

// 使い方
printf("%s %s", Shinsyu.name, Shinsyu.ingredients);
printf("%s %s", Japan[0].name, Japan[0].ingredients);

時間

#include <time.h>

clock_t start,end;
double rTime;

start = clock(); // 計測開始
end = clock();  // 計測終了
rTime = (double)(end-start)/CLOCKS_PER_SEC;