3. $B4X?tMxMQ$K$h$k%W%m%0%i%`$N9=B$2=(B

$B!Z7W;;5!=xO@#2!&$BL\, $B7W;;5!=xO@#2(B, $B, www.kameda-lab.org 2012/10/29c

$BK\@a$G$O!"Bg5,LO$J%W%m%0%i%`:n@.$KI,MW$J5;=Q$r3X=,$7$F$b$i$$$^$9!#(B
$BNc$H$7$F!"I8=`F~NO$+$i?tCM$rFI$_$BBg5,LO$J%W%m%0%i%`$r0lEY$K=q$-@Z$k$N$OL5M}$G$9$+$i!":n6H$rJ,3d$7$F9M$($kI,MW$,$"$j$^$9!#(B

$B%W%m%0%i%`$O%"%k%4%j%:%`$NH?1G$G$9$+$i!"$^$:%"%k%4%j%:%`$r$h$/9M$($F!":n6H$r$I$3$G6h@Z$l$P:n6H35G0$H$7$F$o$+$j$d$9$$$+$r9M$($kI,MW$,$"$j$^$9!#(B
$B$3$NItJ,$O35G0@_7W$H8F$P$l$^$9!#(B
$B!J:G=i$O%a%b=q$-$G$b9=$$$^$;$s$,!"$H$K$+$/7A$K$9$k$3$H$r4+$a$^$9!#(B)

$B35G0@_7W$,:Q$`$H!"$=$l$r(BC$B8@8l$KK]Lu$7$F$$$/:n6H$H$J$j$^$9!#(B
$BD9$$C$B8@8l$G$O!":n6H$NJ,3d$O4X?t$K$h$C$F$B4X?t$r;H$C$F:n6H$rJ,3d$7!"%5%V%k!<%A%s2=$9$k$3$H$G!"%W%m%0%i%`$N3+H/8zN($r>e$2$k$3$H!J%W%m%0%i%`ItIJ$N:FMxMQ!K$,$G$-$k$h$&$K$J$j$^$9!#(B
$B$^$?!":n6H$N6h@Z$l$4$H$K%5%V%k!<%A%s2=$9$k$3$H$G!"%W%m%0%i%`$r=q$/$H$-$K!"C`0l>\:Y$^$G5-=R$7$J$/$F$b$h$/$J$j$^$9!J>pJs1#JC!K!#(B
$B$3$N>pJs1#JC$b$^$?!"%W%m%0%i%_%s%03+H/8zN($G=EMW$G$9!#(B

$B4X?t$K$h$k%5%V%k!<%A%s2=$O!"?M4V$,%"%k%4%j%:%`$r%W%m%0%i%_%s%08@8l$G5-=R$9$k>e$GI,?\$N5;=Q$G$9!#(B
$B!J$3$N$3$H$O!"F|K\8l$G:n6HON)$F$7$?$j9`L\$4$H$KJ,$1$F@0M}$7$F5-=R$9$k$N$HJQ$o$j$^$;$s!#!K(B
$B!J$@$i$@$i$H$7$?
$B!J%W%m%0%i%`$G$bA4$/F1$8$3$H$,8@$($^$9!#!K(B


03.1. $B4J0WEEBn%W%m%0%i%`$N@_7W(B

$B4J0WEEBn%W%m%0%i%`$G$O!"#12s$K$D$$$F#1$D$N2C8:>h=|$N$_$r$B%"%k%4%j%:%`$r9M$($k:]$K$O!"Bg6IE*$JN)>l$+$i:n6H$rJ,3d$7$F$$$/$H!"4V0c$$$dFsEY$B!Z=hM}#1![?tCM!"1i;;;R!"?tCM$N#3$DAH$rI8=`F~NO$h$j#19T$G$^$H$a$F$B!Z=hM}#2![F~NO$,@5Ev$+$I$&$+$r3NG'(B
$B!Z=hM}#3![1i;;;R$K9g$o$;$F7W;;(B
$B!Z=hM}#4![7W;;7k2L$rI=<((B
$B!Z=hM}#5![=*N;$N9g?^$,$"$k$^$G=hM}#1!A=hM}#4$r7+JV(B

$BCm0UE@(B
(1)$B?tCM$OIbF0>.?tE@$r4^$_!"Ii$NCM$bG'$a$k(B
(2)$B1i;;;R$O2C8:>h=|$N#4(3)$B?tCM$H1i;;;R$H$N4V$O#1$D0J>e$N%9%Z!<%9$G6h@Z$k(B
(4)$B7W;;;~$K$O%(%i!<%A%'%C%/$b9T$&(B

$B=hM}Nc(B
$BF~NO(B$B7W;;7k2L(B
3.4 + 1.25.6
-2.2 - -2 -0.2
-2 * -3 6
-0.3 / 0.17 -1.7647058823
3 / 0 $B%(%i!<(B

$B$3$N%W%m%0%i%`$G$O!"(B
fgets()$B4X?t(B
sscanf()$B4X?t(B
strcmp()$B4X?t(B
$B$H$$$$D$N?7$7$$%i%$%V%i%j4X?t$rMQ$$$^$9!#(B

$B1i=,(B

03-02-ex1: fgets()$B!"(Bsscanf()$B!"(Bstrcmp()$B$N(B man $B%Z!<%8$rCe$GI=<($7$J$5$$!#(B
03-02-ex2: fgets()$B!"(Bsscanf()$B!"(Bstrcmp()$B$N$=$l$>$l$KI,MW$J%X%C%@%U%!%$%k$r<($7$J$5$$!#(B


03.2. fgets()$B$N;n1?E>(B

fgets()$B4X?t$O!"%U%!%$%k%G%#%9%/%j%W%?!JBh#10z?t!K$G<($5$l$k%U%!%$%k$+$i#19TJ,$NF~NO$rFI$_$BBh#10z?t$K$O!"DL>o(Bfopen()$B$NJVCM$G$"$k%U%!%$%k%G%#%9%/%j%W%?$r;H$$$^$9!#(B
$B$?$@!"$3$3$G$OI8=`F~NO$r;H$&$N$G!"I8=`F~NO$rI=$9FCJL$J%G%#%9%/%j%W%?(Bstdin$B$r;XDj$7$^$9!#(B

fgets()$B$O!"FI$_$B$J$*$+$D!"%3%T!<$7$?%P%$%HNs$N:G8e$K(B'\0'$B$r=q$-9~$s$G!"J8;zNs$N=*C<$H$7$F$/$l$^$9!#(B
$B$D$^$j!"Bh#30z?tMQ$KMQ0U$9$k%a%b%j6u4V$N%P%$%H?t(B-1$B$rBh#20z?t$KM?$($F$*$/$H%P%C%U%!%*!<%P!<%i%s$;$:$K:Q$_$^$9!#(B

$B!VFI$_$B$=$l$f$($K!"03-2-fgets.c

$B$^$:$O$3$N%W%m%0%i%`$rFI$s$G$+$i!"%3%s%Q%$%k$7$F$B$3$N%W%m%0%i%`$G$O!"(Bfgets()$B$NBh#20z?t$r!"Bh#30z?t$N(Bsizeof()$B$G5a$a$k$3$H$G%5%$%:$r0lCW$5$;$F$$$^$9!#(B
sizeof()$B$O!"8GDjD9G[NsL>$KE,MQ$7$?>l9g$K$O!"$=$NAm%P%$%H?t$rJV$7$F$/$l$^$9!#(B

$B$3$N%W%m%0%i%`$G$O4:$($FMQ0U$9$k%P%C%U%!(B(oneline)$B$r(B8$B%P%$%H$7$+3NJ]$7$F$^$;$s!#(B
$B$D$^$j!"(B 8-1-1 = 6 $B%P%$%H$r1[$($k$H!"%P%C%U%!%5%$%:8B3&$KC#$7$F!"$b$&0lEY(B while$BJ8(B $B$,2s$C$F$=$N@h$NJ8;zNs$r:FEY$B!J(Bwhile$BJ8$,2s$C$?$+$I$&$+$O!"(B"Total: ..."$B$H$$$&9T$,I=<($5$l$k$+$I$&$+$GJ,$+$j$^$9$M!K(B

$B$^$?!"J8;zNs$N:G8e$N%P%$%H$NI=<($,>o$K2~9T$K$J$C$F$$$k$3$H$b$o$+$k$H;W$$$^$9!J2~9TJ8;z$b%f!<%6$,F~NO$7$?J8;z$G$9!*!K!#(B

$B$J$*!"EEBnF~NOCtrl+d$B$OC$B!J(Bstty$B$H$$$&%3%^%s%I$G@)8f$G$-$^$9!#(Bman stty$B$7$F!"(BSpecial characters$B$N%;%/%7%g%s;2>H!#0lMw$O(Bstty -a$B$H

$BM>CL(B
$B$G$O(Bfgets()$B$NBh#20z?t$HBh#30z?t$r0U?^E*$K$:$i$9$H!"K\Ev$K%P%C%U%!%*!<%P!<%i%s$,5/$-$k$N$G$7$g$&$+!)(B
$B$3$l$O%3%s%Q%$%i$N5sF0$K$b0MB8$9$k$N$GI,$:$H$O8@$($^$;$s$,!"03-2-fgets-BufferOverRun.c

$B$3$3$G$O!"(Bdummyline$B$H$$$&(B8$B%P%$%HJ8;zNsG[Ns$r3NJ]$7$F!"$=$3$KM=$a(B"abcdefg"$B$H$$$J8;z!J#8J8;zL\$O(B'\0')$B$rF~$l$F$"$j$^$9!#(B
oneline$B$K$O(B8$B%P%$%H$7$+3NJ]$7$F$J$$$N$K!"(Bfgets()$B$K$O(B4$B%P%$%HM>J,$K$"$k$h$&$K4:$($F13$r$D$$$F$$$^$9!#(B
dummyline$B$rESCf$GA`:n$O$7$J$$$N$G!"%W%m%0%i%`$N:G8e$^$G$3$NFbMF$OJQ99$J$$$O$:$G$9$,!E$5$F!"$I$&$J$j$^$9$+!)(B
$B$3$N!"F'$_DY$5$l$+$M$J$$(B4$B%P%$%H$N$O$_=P$7NN0h$KJL$NJQ?t$,B8:_$9$k$H!E(B
$B!J
$B!J%W%m%0%i%`$GI=<($7$F$$$k(Bi, oneline, dummyline$B$N%"%I%l%9$r$_$l$P2?$,5/$-$=$&$+8+Ev$O$D$/$3$H$G$7$g$&!K(B
$B!J$A$J$_$K(Bf$B$N$D$+$J$$(Bgets()$B4X?t$O(Bfgets()$B$H$[$\F1$8A`:n$rI8=`F~NO$KBP$7$F9T$&4X?t$G$9$,!"0-L>9b$$$3$H$GM-L>$G$9!#$3$l$N$?$a$K$"$A$3$A$G@N$+$iB??t$N%P%0$,!E3'$5$s$OI,$:(Bfgets()$B$r;H$&$h$&$K!K(B
$B!J0-L>$,9b$$M}M3$O(Bgets()$B$N(Bman$B%Z!<%8$K=q$$$F$"$j$^$9!K(B

$B1i=,(B

03-02-ex1: gets()$B4X?t$K$OCWL?E*$J7g4Y$,$"$j$^$9!#$=$N7g4Y$r@bL@$7$J$5$$!#(B


03.3. sscanf()$B$N;n1?E>(B

$BI8=`F~NO$KBP$9$k(Bscanf()$B$O$9$G$K=,$C$F$$$k$H;W$$$^$9!#(B
sscanf()$B$O$=$N?F@L$G!"I8=`F~NO$KBP$7$F$G$O$J$/!";XDj$7$?J8;zG[Ns$KBP$7$FF1$8$3$H$r$7$^$9!#(B
scanf()$B$b(Bsscanf()$B$bJVCM$K$h$C$F!"[email protected]$7$?$+@53N$K$o$+$k$N$G!"$=$l$K$h$C$F%(%i!<=hM}$r9T$&$3$H$,$G$-$^$9!#(B
$B!J$H$$$&$+!"%(%i!<=hM}$9$Y$-$G$9!#%f!<%6$O2?$r$7$F$/$k$+$o$+$j$^$;$s$+$i!#!K(B
$B0z?t$N4V$N%9%Z!<%9$rK:$l$k$H4|BTDL$j$KF0$+$J$$$N$G!"5$$r$D$1$F$/$@$5$$!#(B

sscanf()$B$G$b@x:_E*$K%P%C%U%!%*!<%P!<%i%s$N4m81$O$"$j$^$9!#(B
$BJ8;zNs$rFI$_9~$`$H$-$K$O!"MQ0U$7$?%P%C%U%!$N%P%$%H?t(B-1$B0J2<$N?t;z$r!"(B%s$B$N$H$3$m$G;XDj$9$k$h$&$K!#(B
$B2<$NNc$G$O!"(Boperator[5]$B$K$O(B5$B%P%$%H$7$+MQ0U$7$F$J$$$N$G!"(B%4s$B$H$7$F!"%P%C%U%!%*!<%P!<%i%s$rKI$.$^$9!#(B

03-3-sscanf.c
03-2($B%P%0$J$7(B)$B$+$i$N:9J,(B

$B1i=,(B

03-03-ex1: $B!J(BC$B8@8l$G!KJ8;zNs$N=*C<$O$I$N$h$&$K=hM}$5$l$k$+=R$Y$J$5$$!#(B
03-03-ex2: $B$3$3$G;H$&%3%s%Q%$%k4D6-$G$N!"(B'\0'$B$N03-03-ex3: NULL$B%]%$%s%H$H$O2?$+@bL@$7$J$5$$!#(B
03-03-ex4: $B$3$3$G;H$&%3%s%Q%$%k4D6-$G$N!"(BNULL$B$N


03.4. $B4J0WEEBn(B

$B$3$3$^$G$/$l$P!"$"$H$O1i;;;R$4$H$K7W;;$r$9$k$@$1$G$9!#(B
$B$3$N0[$J$k1i;;$KBP$7$F!"$=$l$>$lJL$N%f!<%6Dj5A4X?t$r3d$jEv$F$F:n@.$7$F$*$-$^$9!#(B

$B%f!<%6$,;XDj$7$?1i;;;R$,2?$H0lCW$9$k$+$r(Bstrcmp()$B4X?t$G3NG'$7$F!"BP1~$9$k%f!<%6Dj5A4X?t$r8F$S=P$7$^$9!#(B
$B$3$N$H$-!"=|;;$@$1$O(B0$B$G3d$j;;$r$7$J$$$h$&$K!"FbIt$G>r7oJ,4t$r@_$1$^$9!#(B
$B8F$S=P$7$,:Q$s$@$i!"1i;;7k2L$rI=<($7$F$=$N2s$O=*N;$G$9!#(B

$B$3$N$h$&$J%W%m%0%i%`$G$"$l$P!">-Mh1i;;;R$rA}$d$7$?$/$J$C$?;~$K!"$=$l$^$G$N1i;;;R$HF1$8MWNN$G%W%m%0%i%`$r3HD%$9$l$P$9$0$KBP1~$G$-$^$9!#(B
$B!J$^$@H~$7$$$H$O8@$($^$;$s$,!"65$($kFbMF$H$N%P%i%s%9$+$i8@$($P:#$O$3$l$0$i$$$,8B3&$+$H!#!K(B
$B$B$3$l$O!"#2$D$N?t;z$N:9$N@dBPCM$r$B3'$5$s$bF1$8MWNN$G!"(Bmax $B$H$$$&1i;;;R$rDI2C$7$F$_$F$/$@$5$$!#(B
$B$3$l$O#2$D$N?t;z$N$&$A!"Bg$-$$J}$NCM$r65$($F$/$l$k1i;;;R$G$9!#(B
$B!J$5$i$KF1$8MWNN$G(B min $B$b$G$-$^$9$M!K(B

03-4-SimpleCalculator.c
03-3$B$+$i$N:9J,(B

$B1i=,(B

03-04-ex1: $B>e5-$N4J0WEEBn%W%m%0%i%`$K0J2<$N5!G=3HD%$r$7$J$5$$!#(B
$B!&1i;;;R(B "max" $B!#$=$NA0$N?tCM(BA$B$H$=$N8e$N?tCM(BB$B$KBP$7$F!"(B"A max B" $B$G(B A$B$+(BB$B$N?tCM$N$&$ABg$-$$J}$r5a$a$k!#(B
$B!&1i;;;R(B "min" $B!#$=$NA0$N?tCM(BA$B$H$=$N8e$N?tCM(BB$B$KBP$7$F!"(B"A min B" $B$G(B A$B$+(BB$B$N?tCM$N$&$A>.$5$$J}$r5a$a$k!#(B
$B!&$3$l$i$N1i;;;R$KBP1~$9$k kameda[at]iit.tsukuba.ac.jp.