C LANGUAGE TECHNOLOGY

【C言語】ungetc関数の使い方

悩んでいる人

C言語でungetc関数の使い方を教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

本記事では,標準入力stdinから値を読み込む方法を習得しているとします.

C言語 標準入力stdin
【C言語】標準入力stdinから値を読み込む方法

こういった悩みにお答えします. こういった私から学べます. 目次1 標準入力stdin2 標準入力から文字の読み込み2.1 getchar関数2.2 getc関数2.3 fgetc関数3 標準入力から ...

続きを見る

ungetc関数

ungetc関数は,後の読み込み操作で読めるように,第1引数cをunsigned char型にキャストして第2引数streamに書き戻します.

書き戻された文字は逆順に戻されます.

また,書き戻しとして保証されているのは,一文字だけです.

ungetc関数は成功するとcを返し,エラーの場合はEOFを返します.

ungetc関数の使い方

ungetc関数の使い方は以下になります.

「abc」を入力した場合の実行結果は以下になります.

「abc」の3文字目の'c'が変数c,d,eに代入されていることがわかります.

「abcde」を入力した場合の実行結果は以下になります.

Nが3のため,「abc」を入力した場合と同様の結果になっていることがわかります.

「ab」を入力した場合の実行結果は以下になります.

「ab」を入力した後に改行を入力しているため,変数c,d,eには'\n'が入力されていることがわかります.

※printf関数の出力が複数行(6~9行目)になっています.

まとめ

C言語でungetc関数の使い方を紹介しました.

ungetc関数は,読み込んだ文字をストリームに書き戻せることがわかりました.

ungetc関数はscanf関数の自作「myscanf関数」で利用していますので,学びたいあなたはこちらからどうぞ.

C言語 scanf関数 自作
【C言語】scanf関数の自作「myscanf関数」

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でscanf関数の自作「myscanf関数」2 scanf関数の自作「myscanf関数」の作成ルール3 myscanf関数の ...

続きを見る

C言語を独学で習得することは難しいです.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

友だち追加

独学が難しいあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!

-C LANGUAGE, TECHNOLOGY
-, , , , ,