ITメモ
C言語 / Programming Language C
開発環境 / Development Environment
【Mac】Xcode【Win】Visual Stadio
基礎 / Basic
About C言語書式コメントコンパイルとリンクメイクファイル / Makefileヘッダファイル変数定数型 / Type配列 / Arrayポインタ / Pointer演算子 / Operator制御文 / Control Statement関数指定子 / 修飾子構造体と共用体 / Structure & Unionプリプロセッサ / PreprocessorthisキーワードTypedef
入出力 / Input & Output
入出力入力フォーマット指定子出力フォーマット指定子「printf」関数を使って文字を出力・表示させる方法「printf_s」関数を使って文字を出力・表示させる方法「scanf」関数を使って入力させる方法「scanf_s」関数を使って入力させる方法「getchar」関数を使って「1文字」だけ入力させる方法「gets」関数を使って「文字列」を入力させる方法
文字列 / String
文字列 / String「snprintf」関数で「配列」に文字列を書き込む方法
ネットワーク / Network
memset - メモリブロックのセット
メモリー管理
メモリー
オペレーション / Operation
ファイルを操作をする方法コマンドラインプログラム / Command-Line Programプロセス / Processソケット通信 / Socket Communication
用語集 / Glossary
サブルーチン / Subroutineスタックとキュー / Stack & Cueスレッド / Thread
C言語標準ライブラリ(ヘッダファイル)
C言語標準ライブラリ【assert.h】 - 診断機能【complex.h】 - 複素数計算【ctype.h】 - 文字操作【errno.h】 - エラー【fenv.h】 - 浮動小数点環境【float.h】 - 浮動小数点型の特性【inttypes.h】 - 整数型の書式の変換【iso646.h】 - 代替つづり(Alternate spellings)【limits.h】 - 整数型の大きさ【locale.h】 - 文化圏固有操作【math.h】 - 数学【setjmp.h】 - 非局所分岐【signal.h】 - シグナル操作【stdalign.h】 - アライメント【stdarg.h】 - 可変個数の実引数【stdatomic.h】 - アトミック操作【stdbool.h】 - 論理型および論理値【stddef.h】 - 共通の定義【stdint.h】 - 整数型【stdio.h】 - 入出力【stdlib.h】 - 一般ユーティリティ【stdnoreturn.h】 - _Noreturn【string.h】 - 文字列操作【tgmath.h】 - 型総称数学関数(Type-generic math)【threads.h】 - マルチスレッド【time.h】 - 日付及び時間【uchar.h】 - Unicodeユーティリティ【wchar.h】 - 多バイトおよびワイド文字拡張ユーティリティ【wctype.h】 - ワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ
C言語ライブラリ(ヘッダファイル)
C言語ヘッダファイル【winsock.h】





【C言語】入出力 / Input & Output

【C言語】
入出力 / Input & Output







入出力とは


入出力は、ファイルやストリームに対して、書き込みや読み込みを行う処理。

C言語でのファイルの読み書き方法
ファイルディスクリプタを使ったファイルアクセス
ストリームを使ったファイルアクセス


ファイルディスクリプタ
開いているファイルに割り当てられる識別子
ストリーム
データの流れを意味しており、データをストリームに書き込むと出力先・入力先へとデータが流れていくというイメージ。

どちらも同じ方法のように見える。
ストリームは、バッフィングや書式付きでの書き込みなどで使われる。
ストリーム経由では出来ない処理もあるので、使い分けが必要。


Back

ストリームの種類


標準出力

プログラムを起動したときに、すぐに使える状態になっている。
デフォルト状態では、ユーザーのターミナル(コンソール)に出力される。
リダイレクト先を設定した場合は、そのリダイレクト先。


標準入力

プログラムを起動したときに、すぐに使える状態になっている。
デフォルトでは、ユーザーのターミナル(コンソール)のキー入力。
リダイレクトを設定した場合は、そのリダイレクト先。


標準エラー

エラーを出力することを目的としている。
デフォルト状態では、ユーザーのターミナル(コンソール)に出力される。
リダイレクト先を設定した場合は、そのリダイレクト先。


ファイルストリーム

指定した任意のファイルに対して出力したり、そのファイルの内容を入力として扱うストリーム。
ファイルストリームには、テキストモードとバイナリモードがある。
テキストモードでは、プログラムを実行しているマシン環境に合わせて改行コードの変換がされる。
バイナリモードでは、改行コードの変換はされない。


Back

「C言語」の「入力」データを取得する関数





関数名説明
scanf scanf (“%c”, &変数 )
1文字として入力する。scanfは、スペースをスペースとして認識しない。

scanf (“%d”, &変数 )
10進数で入力する

scanf (“%x”, &変数 )
16進数で入力する

scanf (“%o”, &変数 )
8進数で入力する

scanf (“%f”, &変数 )
浮動小数点数を入力する

scanf (“%s”, &変数 )
文字列を入力する
scanf_s 「scanf」関数の「セキュリティ強化版」
使用方法が少し異なる。
scanf_s (“指定置換文字列”, 取得データ(&変数・配列), サイズ )
getchar 入力文字を獲得する。スペースをスペースとして認識する。
int 変数名 = getchar();
gets gets(変数)
入力文字を獲得する。スペースをスペースとして認識する。
gets( char &変数名)
gets( char 配列名)
gets_s gets(変数)
入力文字を獲得する。スペースをスペースとして認識する。
gets_s( char &変数名, サイズ)
gets_s( char 配列名, サイズ)


Back

「C言語」の「出力」に使える関数


関数名説明
printf printf( "%s", "123" );
// → "123"

printf( "%4d", 456 );
// → " 456"

printf( "%05X", 254 );
// → "000FE"

printf( "%-5s", "abc" );
// → "abc "

printf( "%f", 12.56637061 );
// → "12.566371"

printf( "%.2f", 12.56637061 );
// → "12.56"

printf( "%e", 12.56637061 );
// → "1.256637e+001"

printf( "%g", 12.56637061 );
// → "12.5664"

printf( "xyz%n", &i );
// i に出力バイト数 (3) が入る
printf_s 「printf」関数の「セキュリティ強化版」。
書式はほぼ同じ。
printf( "指定置換文字列", 置換文字(文字列・数値・変数・配列));


Back