Download : sample-001.c ( SJIS 版 )
/* * 2015/10/02 sample-001.c */ /* * curses hello * * 利用方法 * コンパイル * cc -Ic:\usr\c\include -o BASENAME.exe sample-001.c -lncurses * 実行 * BASENAME */ #include <stdio.h> #include <curses.h> /* curses を利用する場合 */ /* * curses_hello() */ void curses_hello( void ) { initscr(); /* curses の利用開始 */ move ( 10, 30 ); /* カーソルの移動 ( Y, X の順である事に注意 ) */ addstr ( "Hello, Curses" ); /* 文字列の表示 */ getch(); /* 文字の入力を待つ */ endwin(); /* curses の利用終了 */ } /* * main * */ int main( int argc, char *argv[] ) { curses_hello(); return 0; }
$ ./sample-001.exe Hello, Curses
/* * CDATE FILENAME * * キーボードから一文字入力し、その文字によって異る国の挨拶をする */ #include <stdio.h> /* * hello ( char contry ) * char contry : 国を表す一文字 * j : 日本 * e : 英語 * c : 中国 * f : フランス語 * g : ドイツ語 */ void hello ( char cmd ) { switch ( cmd ) { case 'j': /* 'j' の時は、日本語にする */ printf ( "こんにちは\n" ); break; case 'e': /* 'e' の時は、英語にする */ printf ( "Good Afternoon\n" ); break; case 'c': /* 'c' の時は、中国語にする */ printf ( "ニイハオ\n" ); break; case 'f': /* 'f' の時は、フランス語にする */ printf ( "Bonjour\n" ); break; case 'g': printf ( "Guten tag\n" ); break; default: /* どれでもなければ.. */ printf ( "???\n" ); break; } } /* * main */ int main( void ) { printf ( "国を表す文字を入力してください\n" ); printf ( "\tj\t日本\n" ); printf ( "\te\t英語\n" ); printf ( "\tc\t中国\n" ); printf ( "\tf\tフランス\n" ); printf ( "\tg\tドイツ\n" ); hello ( getchar() ); /* getchar() で文字を入力し、それに対応する結果を出す */ return 0; }
/* * 課題 CNAME-02 * * 20150925 20150925-02-QQQQ.c * * 0 〜 99 の偶数を出力する * */ #include <stdio.h> /* * for 文を利用して、0 から 99 の偶数の数値 (そのニ) i が 0 〜 99 の間の偶数だけを動くようにし、毎回 i を出す */ int main(int ac, char *av[] ) { int i; /* for 文の制御変数 */ for ( i = 0; i < 100; i = i + 2 ) { /* i++ だと i = 0, 1, 2, .. */ /* i = i + 2 ととすれば i = 0, 2, 4, .. */ printf ( "%d\n", i ); /* i を出力 */ } return 0; }
#include <stdio.h> int main(void) { int i; /* i という局所変数の宣言 */ /* この段階で、 変数 i に何がはいっているかは不明 */ i = 1; /* 代入(最初の代入なので初期化と呼ぶ */ printf ( "i=%d\n", i ); /* i の値を出力 */ printf ( "i=%d\n", i ); /* i の値を出力(代入をしない限り何度やって同じ結果) */ printf ( "i=%d\n", i ); /* i の値を出力(代入をしない限り何度やって同じ結果) */ printf ( "i=%d\n", i ); /* i の値を出力(代入をしない限り何度やって同じ結果) */ i = 2; /* 二度目の代入 (世界が変化) */ printf ( "i=%d\n", i ); /* 同じ命令なのに結果が異る */ return 0; }
#include <stdio.h> int main(void) { int i; /* i という局所変数の宣言 */ /* この段階で、 変数 i に何がはいっているかは不明 */ i = 1; /* 変数の初期化 */ /* 世界の創造(ビッグバン) */ while ( i < 10 ) { /* 繰返しの条件は 「i<10」 */ /* 「世界」を進めて行く */ printf ( "i=%d\n", i ); /* 「世界」の状況をレポート */ i = i + 1; /* i の値を 1 増やす */ /* 「世界」の時間が進む */ } return 0; }
#include <stdio.h> int main(void) { printf ( "整数値を出力する = %d\n浮動小数点数を出力する = %f\n", 123, 12.34 ); printf ( "%d%d%d%d%d%d%d%d%d%d\n", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ); return 0; }
#include <stdio.h> int main(void) { int i = 0; /* 整数型の変数 */ double f = 0.0; /* 浮動小数点数 */ char c='A'; printf ( "i=%d\nf=%f\nc=%c\n", i, f, c ); /* 現在の i と f の値 */ scanf ( "%d", &i ); /* 整数値を標準入力から入力し、その値を変数 i に代入する */ printf ( "i=%d\nf=%f\nc=%c\n", i, f, c ); /* 現在の i と f の値 */ scanf ( "%lf", &f ); /* 浮動小数点数値を標準入力から入力し、その値を変数 f に代入する */ printf ( "i=%d\nf=%f\nc=%c\n", i, f, c ); /* 現在の i と f の値 */ scanf ( " %c", &c ); /* 文字を標準入力から入力し、その値を変数 c に代入する */ printf ( "i=%d\nf=%f\nc=%c\n", i, f, c ); /* 現在の i と f の値 */ return 0; }
#include <stdio.h> int main(void) { int i; scanf ( "%d", &i ); /* 多重分岐 : 一つの状況に対して、値によって、複数の処理を選択する */ if ( i == 1 ) { printf ( "One\n" ); } else if ( i == 2 ) { printf ( "Two\n" ); } else if ( i == 3 ) { printf ( "Three\n" ); } else { printf ( "Too Many\n" ); } return 0; }
#include <stdio.h> int main(void) { int i; scanf ( "%d", &i ); /* 多重分岐 : 一つの状況に対して、値によって、複数の処理を選択する */ switch ( i ) { case 1: printf ( "One\n" ); break; case 2: printf ( "Two\n" ); break; case 3: printf ( "Three\n" ); break; default: printf ( "Too Many\n" ); break; } return 0; }
#include <stdio.h> int main(void) { int i; /* i という局所変数の宣言 */ for ( i = 1; i < 10; i = i + 1 ) { /* i = i + 1 -> i++ */ printf ( "i=%d\n", i ); } return 0; }
#include <curses.h> int main(void) { initscr(); /* curses を利用開始 */ move ( 12, 35 ); /* 12 行目の 35 桁にカーソルを移動 */ addstr ( "Hello, World\n" ); getch(); /* 態と文字を一文字まつ */ endwin(); /* curses を利用終了 */ return 0; }
#include <curses.h> int main(void) { int ballx = 35; /* ボールの x 座標 */ int bally = 12; /* ボールの y 座標 */ int ch = ' '; /* キーボードからの入力 */ initscr(); /* curses を利用開始 */ noecho(); while ( ch != 'q' ) { move ( bally, ballx ); /* ボール書き込む */ addstr ( "********" ); ch = getch(); /* 入力をまつ */ move ( bally, ballx ); /* ボールを消す */ addstr ( " " ); switch ( ch ) { case 'h': ballx = ballx - 1; break; case 'l': ballx = ballx + 1; break; } } endwin(); /* curses を利用終了 */ return 0; }
#include <curses.h> int main(void) { int racketx = 35; /* ラケットの x 座標 */ int rackety = 19; /* ラケットの y 座標 */ int ballx = 35; /* ボールの x 座標 */ int bally = 12; /* ボールの y 座標 */ int balldx = 0; /* ボールの x 速度 */ int balldy = 1; /* ボールの y 速度 */ int ch = ' '; /* キーボードからの入力 */ initscr(); /* curses を利用開始 */ noecho(); while ( ch != 'q' ) { move ( rackety, racketx ); /* ボール書き込む */ addstr ( "********" ); move ( bally, ballx ); /* ボール書き込む */ addch ( '*' ); ch = getch(); /* 入力をまつ */ move ( rackety, racketx ); addstr ( " " ); move ( bally, ballx ); addch ( ' ' ); ballx = ballx + balldx; bally = bally + balldy; switch ( ch ) { case 'h': racketx = racketx - 1; break; case 'l': racketx = racketx + 1; break; } } endwin(); /* curses を利用終了 */ return 0; }
#include <curses.h> int main(void) { int racketx = 35; /* ラケットの x 座標 */ int rackety = 19; /* ラケットの y 座標 */ int ballx = 35; /* ボールの x 座標 */ int bally = 12; /* ボールの y 座標 */ int balldx = 0; /* ボールの x 速度 */ int balldy = 1; /* ボールの y 速度 */ int ch = ' '; /* キーボードからの入力 */ initscr(); /* curses を利用開始 */ noecho(); timeout(0); while ( ch != 'q' ) { usleep ( 1000000 ); move ( rackety, racketx ); /* ボール書き込む */ addstr ( "********" ); move ( bally, ballx ); /* ボール書き込む */ addch ( '*' ); ch = getch(); /* 入力をまつ */ move ( rackety, racketx ); addstr ( " " ); move ( bally, ballx ); addch ( ' ' ); ballx = ballx + balldx; bally = bally + balldy; switch ( ch ) { case 'h': racketx = racketx - 1; break; case 'l': racketx = racketx + 1; break; } } endwin(); /* curses を利用終了 */ return 0; }