feof
int feof( FILE *fp )
ファイルfpがファイルエンドなら非0を返す。
ファイルfpがファイルエンドでない間、処理を続ける。
ファイルfpがファイルエンドなら非0を返す。
while ( !feof( fp ) ) {
c = getc( fp );
・・・
}
ファイルfpがファイルエンドでない間、処理を続ける。
http://gardener.hustle.ne.jp/programming/
C言語関連の要点まとめ(更新停止中)
while ( !feof( fp ) ) {
c = getc( fp );
・・・
}
putc | 1文字書き出し | putc( c, fo ) |
fputc | 同上 | fputc( c, fo ) |
getc | 1文字読み込み | c = getc( fi ) |
fgetc | 同上 | c = fgetc( fi ) |
fputs | 1行書き出し | fputs( str, fo ) |
fgets | 1行読み込み | fgets( str, 256, fi ) |
fprintf | 書式付き書き出し | fprintf( fo, "%d\n", a ); |
fscanf | 書式付き読み込み | fscanf( fi, "%d", &a ); |
#include <stdio.h>
void main( int argc, char *argv[] )
{
printf( "argc:%d\n", argc );
for ( int i = 0; i < argc; i++ )
printf( "argv[ %d ]:%s\n", i, argv[ i ] );
}
適当.exe 第1引数 第2引数
pause
argc:3
argv[ 0 ]:適当.exe
argv[ 1 ]:第1引数
argv[ 2 ]:第2引数
#include <stdio.h>
#include <stdlib.h>
void main( int argc, char *argv[] )
{
FILE *fp;
int c;
if ( argc != 2 ) {
printf( "引数の数が違います\n" );
exit( 1 );
}
if ( ( fp = fopen( argv[1], "r" ) ) == NULL ) {
printf( "入力ファイルがオープンできません\n" );
exit( 1 );
}
while ( ( c = getc( fp ) ) != EOF )
putchar( c );
fclose( fp );
}
#include <stdio.h>
#define DEBUG
void main()
{
printf( "処理開始\n" );
#ifdef DEBUG
printf( "%s\n", __TIME__ );
printf( "%s\n", __DATE__ );
printf( "%s\n", __FILE__ );
printf( "%d\n", __LINE__ );
#endif
printf( "処理終了\n" );
}
処理開始
11:56:29
Oct 19 2006
C:\xxx\xxx\xxx\tekito.cpp
13
処理終了
#include <stdio.h>
//#define DEBUG
void main()
{
printf( "処理開始\n" );
#ifdef DEBUG
printf( "%s\n", __TIME__ );
printf( "%s\n", __DATE__ );
printf( "%s\n", __FILE__ );
printf( "%d\n", __LINE__ );
#endif
printf( "処理終了\n" );
}
処理開始
処理終了
__TIME__ | コンパイル時刻を「時:分:秒」の書式で表す文字列 |
__DATE__ | コンパイル日付を「月 日 年」の書式で表す文字列 |
__FILE__ | 処理中のソースプログラムの名前を表す文字列 |
__LINE__ | 処理中のソースプログラムの行番号を表す10進数(先頭行は1) |
#include <stdio.h>
int func1( int, int );
int func2( int, int );
void main()
{
int ( *funcp[] )( int, int ) = { func1, func2 };
printf( "%d\n", funcp[0]( 1, 2 ) );
printf( "%d\n", funcp[1]( 1, 2 ) );
}
int func1( int i, int j )
{
return i + j;
}
int func2( int i, int j )
{
return i - j;
}
3
-1
#include <stdio.h>
int loopA( int );
void loopB( int );
void main()
{
int i = 3;
loopA( i );
printf( "\n" );
loopB( i );
}
int loopA( int n )
{
printf( "loopA-out1:%d\n", n );
if ( !n ) {
printf( "出力終了\n" );
return 0;
}
return loopA( --n );
printf( "loopA-out2:%d\n", n );
}
void loopB( int n )
{
printf( "loopB-out1:%d\n", n );
if ( !n ) {
printf( "出力終了\n" );
return;
}
loopB( --n );
printf( "loopB-out2:%d\n", n );
}
loopA-out1:3
loopA-out1:2
loopA-out1:1
loopA-out1:0
出力終了
loopB-out1:3
loopB-out1:2
loopB-out1:1
loopB-out1:0
出力終了
loopB-out2:0
loopB-out2:1
loopB-out2:2