演習4-8 K&R プログラミング言語C
演習4-8 char buf; /* ungetch 用のバッファ */ int getch(void) /* (押し戻された可能性もある)1文字をとってくる */ { char c = buf ? buf : getchar(); buf = ‘\0’; return c; } void ungetch(int c) { buf = c; } プログラミング言語C 第2版 ANSI規格準拠 po…続きを読む
演習4-8 char buf; /* ungetch 用のバッファ */ int getch(void) /* (押し戻された可能性もある)1文字をとってくる */ { char c = buf ? buf : getchar(); buf = ‘\0’; return c; } void ungetch(int c) { buf = c; } プログラミング言語C 第2版 ANSI規格準拠 po…続きを読む
演習4-7 #include <stdio.h> #include <string.h> #define BUFSIZE 100 char buf[BUFSIZE]; /* ungetch 用のバッファ */ int bufp = 0; /* buf 中の次の空き位置 */ int getch(void); void ungetch(int c); void ungets(…続きを読む
4.3 の電卓プログラムを修正する。 演習4-6 A-Z の各文字を変数とする。R は最近に印字された値を保存する特別な読込専用変数とする。 main 関数に変数を扱う処理を追加する。 /* 省略 */ case ‘w’: /* write variable */ push(type); break; case ‘r’: /* read variable */ push(type); break;…続きを読む
4.3 の電卓プログラムを修正する。 演習4-5 math.h をインクルードする。 #include <math.h> main 関数に各演算のケースを追加する。 /* 省略 */ double op1, op2; /* 省略 */ case ‘s’: /* sin */ push(sin(pop())); break; case ‘c’: /* cos */ push(cos(po…続きを読む
4.3 の電卓プログラムを修正する。
よくわかる! 実践Cプログラミング(日経BPパソコンベストムック)の33ページの2進数出力関数 putBinary の動作について調べてみる。
4.3 外部変数 演習4-10まで以下の電卓プログラムを修正していく。 #include <stdio.h> #include <stdlib.h> /* atof() 用 */ #define MAXOP 100 /* 被演算子数、演算子の最大サイズ */ #define NUMBER ‘0’ /* 数字があったという記号 */ int getop(char []); v…続きを読む
4.2 非整数を返す関数 atof が返す double の値は return される際に int に変換される。 これは、atoi が int を返す関数であるため。 そこで、コンパイラが警告を出さないように明示的にキャスト(型変換)している。 /* atoi : atof を使って文字列 s を整数に変換する */ int atoi(char s[]) { double atof(char s…続きを読む
演習4-1 行の最後尾、探索文字の後ろから探していく。 #include <stdio.h> #include <string.h> #define MAXLINE 1024 int getline(char line[], int max); int strrindex(char source[], char searchfor[]); char pattern[] = …続きを読む
演習3-6 文字配列に文字を入れる毎に幅 w の値をデクリメントしてゆき、最後に w の数だけスペースを入れる。 #include <stdio.h> #include <string.h> #define MAX 1024 void itoa(int n, char s[], int w); void reverse(char s[]); int main(int arg…続きを読む