{magclick}
{magclick}
/*
    KAB-studio.h
        @j`a|ŐTXVe
        i[ꂽwb_[t@Cłi΁jB

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    MF 2000/10/09(Mon) No.077
    zMF 3840i Mag2 + Pubzine j
    sF ܂܂( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/
{magclick}

/*              QOOONPOXij̍XV                  */
http://www.kab-studio.com/

Eu STL & iostream v Codian ŃX^[gII
@[}KW STL & iostream 傪 Codian ɓoI@܂́A 
STL  #05 ܂ŁA iostream  #04 ܂łfځBVɐ}ǉA 
C++ ҂{ɖߍ݂܂B STL  iostream ɋ̂邠Ȃ
͂ГǂރxVI

[Codian]
http://www.kab-studio.com/Programing/Codian/


/*                        `[ʂȓL                        */
http://www.kab-studio.com/nikki2/

2000/10/01 (Sun)
@҂͐lőIׁII@Ƃ[bBăoCIbPB

2000/10/02 (Mon)
@ۃVXe̓莮ɍsĎQ܂II@AEOC\ς
łHH@_RłHH@NULL |C^łHH

2000/10/03 (Tue)
@hNGAjBς炸bb͂˂B
ɕ܂Ă[~ł̊II

2000/10/04 (Wed)
@PO̐VԑgA͂߂̈ƃMAmdI@ǂȂȂ
悳႟ȂłB

2000/10/05 (Thu)
@^X^Ŕꂽ`BďdvBьƏю@͕ʕ
񂾁[II@͂͂B

2000/10/06 (Fri)
@Ăу^X^сB̂ɂ͑̏dccB[hobG
LX|̃pXBN͉ft`BāANU͕|ł
H

2000/10/07 (Sat)
@[A_CG[DĂ܂ccBăAjVԑg
ڔB\ǂH


/*                         L̗JT                             */
http://www.kab-studio.com/Programing/KabuU/

2000/10/01 (Sun)
ւ
VC ł̃X^bNTCY̐ݒ@́H
/STACK IvV
yvWFNgz|yݒz_CAO
yNz|yAEgvbgzy[ẂyX^bN AP[Vz
DLL ƕʂɐݒ肵ǂȂH

2000/10/02 (Mon)
ւ
fgets() Ńobt@I[o[t[`FbNł
t@CȂčς
u scanf() ƓG[`FbNłȂvH
ŐVRpCp NULL
TvR[h
lɂ͕ϊłȂA|C^ƂĂ̂݋@\ 0 
gRpC

2000/10/03 (Tue)
ւ
SetWindowText()  WM_SETTEXT bZ[W𑗐M̂
̃bZ[W SendMessage() ŏ̂
MSDN ɂƂ炵
ւ
fgets()  sscanf()
^]ނ̂`FbNĂ sscanf() ł
scanf() ñG[`FbNMpȂ
ς std::fstream ̕

2000/10/04 (Wed)
STL & iostream ̍ĕX^[g
Tjɂ Codian 

2000/10/05 (Thu)
scanf() n̖𗝉
TvR[h
sscanf( "%d") ̓I[o[t[`FbNȂ
̃`FbNOɂKv
ς iostream ̕y
ւ
t[EBhEŜ̍ĕ`̕@́H
@炸
ŏĂȂ
EBhEPhbgkĂ悳
TvR[h

2000/10/06 (Fri)
ւ
fobOIɏo "Detected memory leaks!" ̊p@́H
VC ̃fobO new ŃmۂāA delete Ȃɏo
t@Cƍsԍ̏񂪏dv
CfbNXio[AhX\邯
Ƃɂ new ꏊ𒲂ׂ delete 悤ɂ
t@C\Ȃꍇ
new ̂Ƃ _CrtMemDumpAllObjectsSince() Ă

2000/10/07 (Sat)
x


/*             vO~OET̒ǉP                 */
http://www.kab-studio.com/Programing/Dictionary/

EǉPF
LbV t@C v[Xz_[ oE_

ET̏󋵁F
@͂SPI@ĂÂ炢悤ȋCijB


{magclick}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
uƂƂ Codian X^[gII
wł}KƓȂx
u₢A[ƃz[y[W͈ႤfBAv
w܁[ǂyČ΁Az[y[Wyˁx
http://www.kab-studio.com/Programing/STLiostream/
_______________________________________________________________[KCM]
{magclick}


/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

@Version 5.12
^C͖ʓ|I

uAȎIv

    int iError = 0;
    int iTemp = 0;
    while( !feof( pstFile ) )
    {
        char chOneLine[256];
        fgets( chOneLine, 255, pstFile );
        iError = sscanf( chOneLine, "%d", &iTemp );
        if( iError == 0 )
        {
            TRACE( "lȂł\n" );
            break;
        }
        char chDest[256]; 
        sprintf( chDest, "%d", iTemp );
        m_cDataLstBox.AddString( chDest );
    }

wۂɓǂݎĂƂˁB std::ifstream  >> Ă
Ƃx
uɓ̂A^C fgets()  sscanf() v
wӂKvȂ񂾂ˁ[B܂Aŏ feof() āA End Of File 
ǂׂ́Hx
uA std::ifstream ̂ƂƓAt@C̍Ōォǂׂ
^C֐B pstFile nĂ邱ƂɒӁv
wt@C|C^ˁBn΁A fopen() Ƃ̃t@C
łĂƂˁx
uƁBŁAJbR̒Aŏ chOneLine ͂Ƃ肠Ps
t@C̒̕Ă߂̕zv
wɂ 256 ܂łȂ͓̂KHx
uAႤƃt@ĈPs 256 ȏゾƓ؂Ȃ
AƂvOg_v
w͂͂B fgets() ̓^CČĂˁx
u fgets() ́At@CPsǂݍŕzɊi[郉^C
֐v
wP̕zō chOneLine AR͓ǂݍރt@
Cwt@C|C^BQ́H@ 256 Ɗ֌W肻x
uAQ́q荞ޕ̏rBz 256 ܂
A肫悤 255 ĂƂ܂v
wȂłPȂ́Hx
uccCv
wȂ񂶂Ⴛx
uǂ肷ƕsłˁB [] Ŏw肷̂͗vf|PAĂ
̂Ɗ֌WĂ邩v
wOn܂ˁBłȂ񂩓Kx
uKČ΁A 256 Ƃ 255 Ƃ̒ł̓zg̓_v
w const int ˁBłۂɂ́AϓIɕϐAĂ̂œ
肫悤ɂ̂ԁHx
uˁAt@CTCYm@邩ÃTCY
Ă܂t@CSi[ĂAĕ@ɂȂ邩ȁv
w炻ꋳĂ΂̂Ɂx
u`Hv
whx
uāA fgets() łPsǂݍ񂾂A sscanf() ̏oԁv
wAȂ TRACE() Ix
u sscanf() ̓^C֐̂ЂƂŁA񂩂琮Ƃo
́Bǂo͑QŁA sprintf()  TRACE() Ɠ
w肵܂v
wP͂̕񂾂ˁBȂ sprintf() ̋tĊBQ
 "%d" 琮lo񂾂ˁBH@R &iTemp 
āHx
u̐l󂯎邽߂̕ϐB Ver 4.14 ( No.064 ) ǂݕԂāv
wȂقǁA iTemp ̃AhXnāÃ|C^g iTemp ɒl
ĂĂ킯x
u܂ iTemp  100 Ƃ 200 Ƃ邱ƂɂȂ܂v
w܂ȂHx
u߂lɂOԂĂ܂B iError Ɋi[Ď if Ń`Fb
NĂ܂v
w std::ifstream::fail() ̑ˁx
uA sscanf() ͌^̃`FbNĂȂB 100 ̑
 A ƂƁv
wlȂłďox
u  10000000000 Ɓv
wlȂłāccoȂII@G[ɂȂȂ񂾁A
ςȒloĂ邵x
uƂ킯ŁAۂɂ sscanf() ̑Oɂ̃TCY`FbNȂ
_v
w낢mĂ邩cbR~Ȃǁccx
uȂ݂ std::ifstream ł́Ã`FbN͂ƍsĂ܂v
wƂ֗Ȃ̂ˁx
ûƂ̂Rs std::ifstream ̎Ɠv
w sprintf() ŕɕςāA CListBox::AddString() ŃXg{bN
XɒǉBāAϖʍĊccx
u^C isdigit() Ăqǂr𒲂ׂ֐
邩AgĂˁv
w^CČ\FX̂ˁx
uŒJbR̍Ō܂ōsĂ while ̍ŏցB Ȃ
std::ifstream ̘̎bɖ߂邯ǁA >> gƁqt@Cwjr
ɐiނČˁv
w񌾂BꂪŌ܂ōs EOF oĂ񂾂ˁx
u̕ӂ̎dǵ݂AEBhEỸt@C삻̂̂̎dg݂
vāBEBhEY̒Ɂqt@CwjrāAꂪ
t@Cǂݎ邲ƂɐiށAČ`v
wĂ̑O fopen() ƂŁqt@CJrƂ̂ƓVX
eHx
uAB̂EBhEỸVXeɔĂĂ
ˁB܂Iv
w܂Hx
u iostream ƃ^CAIɂ͗ƂƂĂĂƁv
ẃ[A std::ifstream gāA fopen() Ƃ̊֐
gĂ邯ǁAgIɂ͓ƂĂ񂾁x
uA@ႤĂŁAۂɂĂ邱Ƃ͓Ă
Ăāv
w܁A̕₷ǂˁx
uŁAg^ĈA fgets() ̕ǂݎxɁqɓ
ݎʒurЂƂi߂邩v
w fgets() Ăł́qɓǂݎʒuriŁA feof() Ă
ŌォǂׂāAŌȂ while 甲Đ@ˁx
uȂ݂ɁÁqɓǂݎʒur̂Ƃt@C|C^ČĂ
񂾂ˁv
wAčIx
u{Iɕʕ璍ӂĂˁBĺAꂩ́qǂݎ|C^r
ČĂԂv
w悵I@ł|C^ĂƂ́x
u[A|C^Ƃ͂ƈႤccĂƂłȂccv
wς؂Ȃˁ[x
u܁At@Ĉǂw|C^ŁA fgets() Ƃ玟
'\n' o܂Ń|C^iށA炢̃C[Włȁv
w@\Ƃă|C^݂Ȃ́AĂƂˁx
uƁAǂݎ|C^iނ̂ fgets() B sscanf() ͐i܂
v
wǂ䂱ƁHx
uƂΕz 100 200 ēĂƂɁA std::ifstream 
>> gƁA 100 ̎ 200 ďoĂ܂v
wAꂪʂx
uƂ낪A sscanf() ̏ꍇɂ 100 ̎ 100 A܂肠܂Ő擪
炵ǂݍ܂Ȃv
wAgȂx
u܁A sscanf() ͕񂩂ǂݎ̂Ă̂񂾂
ˁBAǂݎ|C^i߂̂ fgets() ̕AĂƁv
ẃ[x
uƂ킯ŁAxŜƁv

void CFileTestDlg::OnBtnShow() 
{
    // t@CJ܂B
    FILE *pstFile
        = fopen( "Data.txt", "r" );
    if( !pstFile )
    {
        TRACE( "t@CȂI\n" );
        return;
    }

    int iError = 0;
    int iTemp = 0;
    while( !feof( pstFile ) )
    {
        char chOneLine[256];
        fgets( chOneLine, 255, pstFile );
        iError = sscanf( chOneLine, "%d", &iTemp );
        if( iError == 0 )
        {
            TRACE( "lȂł\n" );
            break;
        }
        char chDest[256]; 
        sprintf( chDest, "%d", iTemp );
        m_cDataLstBox.AddString( chDest );
    }

    // t@C܂B
    fclose( pstFile );
    return;

// ȉB

w iostream g͂Ɩʓ|ˁx
u fgets()  sscanf() ̂ӂĂł邵A̕Ƃ肠u
߂̕ϐĂ邵v
w fclose() Ăł̂߂ǂȁB̂ρA C++ 
̋@\gĂ邩Ȃ́Hx
uƂɂȂˁBł fgets() Ƃ̂͂ƈႤȁB
ӂ͒g̈Ⴂv
w܁A iostream gyĂ̂͊mˁx
ułƂȂǂˁBgȂƂA C++ ̋@\
mȂƁv
wccρAmȂƃ_Hx
uB߁X[v
wx
uŌɁÃt@ĆAꂪׂĂĂ킯Ȃv
wqSŏɓǂݍށrƂĕ@Ăˁx
u[vƁAȃvOv

    // t@Cǂݍ݂܂B
    char chOut[256];
    int iOneCharTemp;
    for( int iIndex = 0; iIndex < 256; iIndex++ )
    {
        iOneCharTemp = fgetc( pstFile );
        if( feof( pstFile ) )
        {
            break;
        }
        chOut[iIndex] = static_cast< char >( iOneCharTemp );
    }
    chOut[iIndex] = '\0';

wށA for ɂȂĂB feof() ͒mĂ邯ǁA fgetc() Ƃx
u fgetc() ̓t@CPǂݍނ߂̃^CB MSDN 
́yXg[o̓[`zăy[Wɂς֐łv
wςBA fopen() Ƃ[[̂ˁx
uɂ̂́A^C̒łt@C邽߂̊֐QB
̎gȂ悤ɂȂ邾ł\FXł悤ɂȂ邩
ˁv

/*
    Preview Next Story!
*/
wĂƂ́AT͂̐FXHx
uԂԁ[Bȉɂ͂Ȃ̂łv
ŵŒx܂Ă邭Ɂx
uhv
wƂ킯Ŏx
 Version 5.13  MFC Ńt@CI 
uɂÂIv
wA󂿂񂨓ӂ̃p^[Ix
uȃCum΁ÂƌĂ̂łIv
woC@݂ccx


/*                       ؂̗JT                           */
http://www.kab-studio.com/Programing/KanaU/

const o֐
#09 const o֐̃I[o[Ch

@const o֐Ɣ const o֐́AʁXɍ쐬邱Ƃł
܂B const ̂ȂŃI[o[[hłĂƂ #06 Ō
ˁB
@ŖɂȂ̂Ảz֐B const o֐ 
virtual w肷΁AhŃI[o[ChƂ const 
o֐ɂȂ܂BĂƂ́ANX const ƁAhN
XŃI[o[ChƂɁAŃoϐȂ
ȂłB
@̓Iɂ͂ȊB

class CBase
{
protected:
    virtual void VirtualFunc() const = 0;
};

@ƁA const o֐z܂B

class CSub
    : CBase
{
    int m_i;
public:
    virtual void VirtualFunc() const
    {
        m_i = 0;    // RpCG[B
    }
};

@ƁAI[o[Ch郁o֐ const ɂȂႢȂA
oϐ͂łȂȂłB
@͂ȂBNXł̂Ƃǂ݈ႢÂ
̐݌vɑ傫\܂BT͈ӖƂĂ const ɂ
āBˁB


/*            QOOONPOPUij̍XV\              */
http://www.kab-studio.com/

E\ȂijB
@v͂邯Ǎ̂Ƃ떢B܂Ɗ҂ĂĂˁB


/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.com/nikki2/
EvO~OɊւ鎿[L̗JT]ɂ肭B
http://www.kab-studio.com/Programing/KabuU/
EwǓo^Ƃɂ͂̃y[WōsȂĂB
http://www.mag2.com/m/0000012198.htm
http://www.pubzine.com/detail.asp?id=000590
E͎ōsȂĂB
EobNio[͂̃y[Wɂ܂B
http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198
http://www.kab-studio.com/Freeware/

/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/


/*                      See you next week!!                      */

