LoginSignup
0
0

More than 3 years have passed since last update.

C言語の復習(scanfを使ってみようか)

Posted at

scanfって

僕のイメージのscanfは自由に数字や文字を入れてくださいというものでしょうかね。
scanfを使うときは(数字,&宣言した名前)となっています。
&はアドレスを参照してる感じですね。
あなたが作った箱の中身は?って感じですね。

しかし、文字の場合は&使いません。
事前にchar[100]と書いてるのはcharは一文字ずつ読み込むので1文字1バイトとして100バイト使えるんですね。

scanfだと特に制限なしで読み込んじゃいます。
%sを使っているのですがこちらは文字列で受け取る。(ちなみに%Cは1文字受け取るですね。)という形にしないと文字出力できませんね。

もし、%10sにすると10バイトだけ読み込むことになるのかな。
ひらがなだと1文字2バイトなので%10sだと5文字受け取ることになるでしょうね。

ぐだぐだ言ってないでプログラムを書いていきましょうか。

#include<stdio.h>

int main(void){
    int aa, bb, cc, dd, ee, ff, gg;
    char moji[100]; 

puts("君が好きな数字を1つ書て改行してもう一つ数字をかいて、そのあとに改行して好きな言葉いれてね。");
    scanf("%d", &aa);
    scanf("%d", &bb);
    scanf("%10s",moji);

    cc = aa + bb;
    dd = aa - bb;
    ee = aa * bb;
    ff = aa / bb;
    gg = aa % bb;

    puts("");
    puts("じゃあそれを使って計算するよ");

    printf("aa + bb の値は%dですね \n", cc);
    printf("aa - bb の値は%dですね \n", dd);
    printf("aa * bb の値は%dですね \n", ee);
    printf("aa / bb の値は%dですね \n", ff);
    printf("aa %% bbの値は%dですね \n", gg);
    puts("最後に言い残す言葉は");
    printf(moji);

return 0;

}

これをコンパイルしてみましょう。
ccl.jpg
ってな出力が出てきました!

文字や数字を格納する方法や容量の制限などいろいろできるので触ってみると勉強になりそうですね。

ちなみに%は余りって意味です。%%二つ使ってるのは出力にも%という記号を出したくてなっています。

自分なりのscanfを使った復習でした^^

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0