2011-01-01から1年間の記事一覧

C言語学習記録9 ビットフィールド

ビット数を指定して構造体のメンバを割り当てる unsigned(符号なし整数)かint(符号付き整数)のどちらかが使える #include<stdio.h> struct test { unsigned a: 3; unsigned b: 3; unsigned c: 2; }; int main(void) { struct test t; t.a=3; t.b=2; t.c=2; printf("%d</stdio.h>…

C言語学習記録8 日時の表示

日時を保持する構造体 struct tm { int tm_sec; /* 秒 [0-60] (1 leap second) */ int tm_min; /* 分 [0-59] */ int tm_hour; /* 時 [0-23] */ int tm_mday; /* 日 [1-31] */ int tm_mon; /* 月 [0-11] */ int tm_year; /* 年 (1900年からの年数) */ int tm_…

C言語学習記録7 構造体

電話帳プログラム #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 80 #define WORD_MAX 100 struct address // 一人分のアドレスを保存する構造体 { char name[WORD_MAX]; // 氏名 int area_code; // 市外局番 char tel_number[WORD_MAX]; // 電話番号 }; struct a</string.h></stdlib.h></stdio.h>…

C言語学習記録6 図書カードプログラム

#include<stdio.h> #include <stdlib.h> #include <string.h> #define BUFSIZE 256 #define MAX 100 #define SIZE 80 char name[MAX][SIZE]; char book[MAX][SIZE]; char company[MAX][SIZE]; int idx = 0; int menu(void); int savefile(void); int loadfile(void); int input(char *msg,</string.h></stdlib.h></stdio.h>…

C言語学習記録5 fgets使用時の入力ストリームのバッファ

fgets char *fgets(char *s, int size, FILE *stream); fgets は stream が示すファイルから改行('\n')または n-1 バイト目まで文字を読み込み、引数で渡された s に格納する。この n-1 バイトの中には改行自体も含まれる。その後文字列の末尾に終端記号 '…

C言語学習記録4 fgetsを使った標準入力

ファイルを削除するプログラム fgetsは末尾の改行も保存するのでstrchrで検索し削除を行う (標準入力やテキストファイルから入力した場合に末尾に改行が入る) #include<stdio.h> #include<stdlib.h> // exit() #include<ctype.h> // toupper() #include<string.h> // strchr(), strlen() int main(v</string.h></ctype.h></stdlib.h></stdio.h>…

odコマンドの使い方

cat file.txt下記のファイルでodを使用 aiueo ASCII 文字かバックスラッシュ付きのエスケープ文字 で表示 od -c file.txt結果 0000000 a i u e o \n 0000006 1バイトずつ10進数で表示 od -td1 file.txt結果 0000000 97 105 117 101 111 10 0000006

C言語学習記録3 fseek ftellを使ったファイル入力

ファイルを表示 #include<stdio.h> int main(void) { FILE *fp; char file_name[] = "test_file"; long i, loc; char ch; if ((fp = fopen(file_name, "rb")) == NULL) { perror(file_name); return 1; } fseek(fp, 0L, SEEK_END); loc = ftell(fp); loc = loc - 1; f</stdio.h>…

C言語学習記録2 fread fwriteを使ったファイル入出力

fread size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); fread() 関数は stream ポインタで指定されたストリームから nmemb 個のデータを読み込み、 ptr で与えられた場所に格納する。個々のデータは size バイトの長さを持つ。 fwrite s…

C言語学習記録1 fgetc fputcを使ったファイル入出力

ファイルオープン char file_name[] = "myfile.txt"; FILE *fp; if ((fp = fopen(file_name, "rb")) == NULL) { perror(file_name); return 1; } オープンモード オープンモード 意味 ファイルがあるとき ファイルがないとき r 読み出し専用 正常 エラー(NU…