注文の多い古書店

ニュースとかニコニコ動画とか妄想の話とか。最近は買いもしないのに初音ミクに夢中。基本的にオチはない。

C言語 赤点判定できたよー

#include<stdio.h>
#include<stdlib.h>
//stdlib.hは12:のatoi関数に対応

int main()
{
char buffer[1024];
int grade = 0;

while (grade <= 0) {
printf("1〜4の数字を入れてください\n");
fgets(buffer, sizeof buffer, stdin);//入力された文字列を変数bufferに代入
grade = atoi(buffer);//atoi関数でbufferの文字列を整数として変数gradeへ代入

    if (grade < 5 && grade > 0)//4〜1であれば判定に入る &&:「〜かつ〜」
        {
        printf("1〜4の範囲内です。判定に入ります。\n\n");//%sは変数を文字列で表示する
        }
    else
    {
        printf("範囲外の数値と認識しました。再入力してください。\n\n");
        grade = 0;//gradeを0にしてwhile文を再度
    }
}

if (grade == 4)//if文開始。gradeが4なら次行実行。=だと代入
    printf("A評価\n");

    else if (grade == 3)//3なら(ry
        printf("B評価\n");

        else if (grade == 2)//2なら(ry
            printf("C評価\n");

        else//どれにもあてはまらなかった場合
            printf("D評価 赤点ダヨ! (^д^)6m\n");

return 0;
}

 毎回ソースコードを書く労力より貼り付けるので疲労困憊してるんですよね。CSSいじくったりすれば綺麗に色付きで表示されるみたいですが、そっち方面の知識があまり無いのでめんどくさいです。はてなダイアリーにはそっち系の機能付いてるんですかね? 折角ハチロク世代に参加したんだしプログラミングの話題は向こうでやるかなー。
・論理演算子
 if文の中に二つ条件を入れたい時は論理演算子を使う。「if(a == 1 && b == 1)」は「aが1、かつbが1」となる。

・getsは脆弱性
 脆弱性といえば某お魚な方ですね。こんにちはこんにちは! cmd上で文字列を入力させるgetsはバッファオーバーフローを起こす可能性があるそうです。まだ実用的プログラムを作る事はないですが、何やら居心地が悪いのでfgetsにしておきましょう。

・googleでお手本を探せます
 Googleでコードの検索が出来る、っての自体は前々から何度か聞いてましたが、たった今「fgets gets」で検索してその凄さの一端を理解しつつあります。fgets gets lang:c - Google Code Searchだったら「C言語でfgetsとgetsを含む物」、弾幕 - Google Code Searchならコメントやらに「弾幕」を含む物を検索できます。こりゃ良いですね。

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2008/04/13(日) 18:01:22|
  2. ノート/色々
  3. | トラックバック:0
  4. | コメント:0
<<ウィルコム、Vista搭載の新端末「D4」を発表 | ホーム | 妄想事業 難民を可視化する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://oldbookstore.blog54.fc2.com/tb.php/473-0e0d4463
この記事にトラックバックする(FC2ブログユーザー)