天国にいけるC言語入門 シーズン1 パソコン超初心者がゼロから東方風シューティングをつくる編 ver.0.4.15.789 RELIEF
printf関数の引数である'文字'がコンピュータのメモリに格納される際シングルクォーテーションで囲まれた'文字'内には半角英数字1文字のみ記入できます
printf関数の引数である'文字'がコンピュータのメモリに格納される際シングルクォーテーションで囲まれた'文字'内には半角英数字1文字のみ記入できます
ソーラー「
#include <stdio.h>
int main(void)
{
printf("%c\n", '1' );
return 0;
}
コンパイル結果
1
このプログラムでは
数値1をシングルクォーテーション' 'で囲って
文字データ1としてコンピュータのメモリに格納してから
%c出力変換指定子をもちいて
文字列データ"%c\n"の"%c部分に取り込み
コンパイル結果
1
を表示していました
このとき
シングルクォーテーション' '内には
半角英数字一文字しかいれてはいけませんというルールがあります
🍋半角英数字一文字しかいれてはいけないところに🍋
ひらがな あ を このプログラムに取り込んでコンパイルすると
#include <stdio.h>
int main(void)
{
printf("%c", 'あ' );
return 0;
}
コンパイル結果(EAZY IDECの場合)
ファイル「C:/Users/solarplexus/AppData/Local/EasyIDEC/project/abcdefg/main.c」の
「6行目」で記述エラーを発見しました。
警告
multi-character character constant
ビルド結果(Visual Studioの場合)
ビルドは正常完了
プログラムを実行することができますが
コマンドプロンプト画面には何も表示されません。
それから
次のプログラムのように
#include <stdio.h>
int main(void)
{
printf("%c\n", '10' );
return 0;
}
' 'の中に
🍋半角英数字一文字しかいれてはいけないところに🍋
10をいれてみてコンパイルすると
コンパイル結果(EAZY IDECの場合)
ファイル「C:/Users/solarplexus/AppData/Local/EasyIDEC/project/abcdefg/main.c」の
「5行目」で記述エラーを発見しました。
警告
multi-character character constant
ビルド結果(Visual Studioの場合)
ビルドは正常完了
プログラムを実行することができますが
コマンドプロンプト画面には
0と表示され
正しく10が表示されません。
やっぱり半角英数字一文字しかいれてはいけないようです。
このmulti-character character constantがどうやら
それを意味しているみたいですね(^_^)/
constantとは定数という意味であり
定数とは ある一定の情報量をもったデータのことをあらわしています。
ええっと このメッセージの意味をわかりやすく翻訳すると
複数の文字で定数が構成されている となります。
わかりにくい・・・?
ひらがな あ は 実はコンピューターにとっては
半角英数字2文字分のデータで構成されています。
数値10も半角英数字2文字分にあたります。
ですので
半角英数字 1文字しか
シングルクォーテーションで囲まれた' 'の中に
半角英数字 2文字分書き込んだため
複数の文字で定数が構成されている
と
コンパイルエラーが表示されたというわけです。
つまり 半角英数字 1文字しか打ち込んじゃだめということですね。」
ぶーにゃん 「 半角英数字1文字だけ。にゃお~~ん」
🌞
初学者のみなさま、たびたび先走ってすみません
これは char形式では半角英数字1文字だけしか
コンピュータのメモリに格納できないからなんです
このことについては 大分後のお話となります。
すみません
🌞
ぶーにゃん 「にゃーんも
プログラムをうちこんでみよっと(^^)
#include <stdio.h>
int main(void){
printf("%cと%cはやまへ芝刈りに%cと%cは川に
洗濯にいきました。" , '5' ,'7','8','7','1');
return 0;
}
コンパイル結果(EAZY IDECの場合)
5と7はやまへ芝刈りに8と7 は川に
洗濯にいきました。
さっきの%dのときと使い方はおなじにゃん。🐈
ソーラー「ビルド!」
ビルド結果(Visual Studioの場合)
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C2065 '洗濯にいきました。': 定義されていない識別子です。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 7
エラー C2001 定数が 2 行目に続いています。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 5
エラー C2001 定数が 2 行目に続いています。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 7
エラー C2146 構文エラー: ')' が、識別子 '洗濯にいきました。' の前に必要です。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 7
エラー C2143 構文エラー: ';' が 'return' の前にありません。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 9
エラー C2143 構文エラー: ';' が '文字列' の前にありません。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 7
エラー C2146 構文エラー: ';' が、識別子 '洗濯にいきました。' の前に必要です。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 7
エラー (アクティブ) E0008 終わり引用符がありません Project6 c:\Users\solarplexuss\source\repos\Project6\Project6\Source.cpp 5
エラー (アクティブ) E0008 終わり引用符がありません Project6 c:\Users\solarplexuss\source\repos\Project6\Project6\Source.cpp 7
Visual Studioではビルドエラーが表示されてうまくビルドできないね
いや むしろプログラマーにとって親切設計かな?」
てんC 「ぶーにゃんさん、
命令文
printf("%cと%cはやまへ芝刈りに%cと%c は川に
洗濯にいきました。 ", '5' ,'7','8','7','1');
で""で囲まれた左辺の%cは4個
,コンマの
右辺の文字データ
'5'
'7'
'8'
'7'
'1'
は5個で'1'の分だけを
うちすぎていますよ。」
ぶーにゃん 「にゃにゃっ。😺
うちすぎていたにゃん。
EAZY IDECでは」
無事にコンパイルできているけど・・・
やっぱり左の文字から%cに格納されているにゃん。(^^)」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます