読者です 読者をやめる 読者になる 読者になる

りーまの日記

特に外向けに配信しているわけではないので読みにくいかもしれませんが参考になれば幸いです

3月の進捗報告

情報処理技術者試験 資格試験 お絵描き 月末進捗報告

こんにちは、りーまです!

3月をこうしてみると早かったような早くなかったような…
今月は主に情報処理技術者試験の対策と例大祭の原稿を進めてました

 

情報処理技術者試験は3月の中頃からずっと午後問題を解いていますが午後が記述式で正確な点数がわからないうえ解答を見ないとわからないことも多くあります…

わからないというか「名前を知ってるし基本機能はわかるけど深く知らなかった」が多いです。ただ解説を見れば理解できないことはないので問題数をこなして知らないを減らすが一番の近道だとは思います。

 

例大祭の方は3月中頃に通知がありました、実は情報処理試験を優先させていてちょっとまずい気もしますがどうにかします。

 

最後に3月に描いた絵を載せておきます

2月は全く描いてませんし3月も2枚だけですね

www.pixiv.net

f:id:strimuer213p:20170401003830j:plain

f:id:strimuer213p:20170401003858j:plain

 

独C9.4-2

独習C進捗 C言語

独習Cの進捗状況

WBCの季節です!野球見ながら情報処理試験のテストを解くわけにも行かなかったので久しぶりに独習Cの続きを写経しました

-------3月8日----------------------------------------

fprintf(FILE *ストリーム,char *制御文字列)
fscanf(FILE *ストリーム,char *制御文字列)
 fprintf()とfscanf()を使う利点は様々な形のデータをテキスト形式でファイルに書き込むことが非常に容易になる事です

 

ちょっとやったんですが

なんだかすこし違和感がありました…

こんな感じで納得したんですがちょっとづつ慣れていきます!

情報処理技術者試験の進捗

プログラム知識 資格試験 情報処理技術者試験

情報処理技術者試験の進捗です

-------3月6日----------------------------------------

2/17 平成28年度 春期 午前 1回目 37/80

2/21 平成28年度 春期 午前 2回目 68/80

2/21 平成27年度 秋期 午前 1回目 40/80

2/22 平成27年度 秋期 午前 2回目 77/80

3/2   平成27年度 春期 午前 1回目 41/80

3/3   平成27年度 春期 午前 2回目 75/80

3/4   平成26年度 秋期 午前 1回目 39/80

3/5   平成26年度 秋期 午前 2回目 75/80

3/5   平成28年度 春期 午前 3回目 75/80

3/6   平成27年度 秋期 午前 3回目 70/80

3/6   平成27年度 春期 午前 3回目 74/80

 

ちょっと2月の終わりから3月のはじめまで県外に遊びに行ってたのでそこの進捗はありません

 

年ごと

平成28年 春期 午前

1回目 37/80

2回目 68/80

3回目 75/80

平成27年 秋期 午前

1回目 40/80

2回目 77/80

3回目 70/80

平成27年 春期 午前

1回目 41/80

2回目 75/80

3回目 74/80

平成26年 秋期 午前

1回目 39/60

2回目 75/80

 

初見が弱いですね…

40/80前後…

今までの資格試験の要領で2回目は満点とれるように1回目を深く復習するというスタイルは出題範囲が膨大な試験ではあまり効果がないのでしょうか…

とりあえずもう少したくさん問題に触れてみます!

拡張子勉強の記録

プログラム知識 拡張子

-------2月20日----------------------------------------
拡張子
ファイル操作をしているうちに見たことのない拡張子にたくさん会いました

知らなかったものを調べてみました

ここでは
.rels
.xml
[Content_Types].xml

Office Open XML file formats - Wikipedia

一応一通り読みましたがピントくるものがありません…
Office専用(?)の何かって感じですかね…

いつか読み返して何かわかるときが来るように頑張ります…

 

あと特に直接関係ないのですが拡張子を調べていて気になったので

WindowsOSのローカルディスク(c:)の「windows」フォルダ

この中身の仕組みについて書いてある本があれば教えてほしいです。

 

ファイルやるまではどちらかと言えば内向きなプログラミングでしたがファイルをやると次第に外向きになっていきプログラム関数だけではなく情報用語も知っておかないと苦労する場面が出てきて今はプログラムと一緒に情報用語を少しずつ勉強してます。

時間はかかりますが遠回りしても一つずつ拾っていきたいです!

独C9.4-1

独習C進捗 C言語

独習Cの進捗状況

-------2月17日----------------------------------------

 

fclose()
 成功すると0を返し、エラーが起きるとEOFを返す

拡張子「.tmp」
 一時的なファイルを作成するときなどに使う
 特に拡張子に決まりはないが.tmpが一般的

一時的なファイルの作り方を学んだ

fputs(char *文字列,FILE *ストリーム);
 ・文字列をファイルに書き込む
 ・エラーが発生するとEOFを返し、正孔すると負でない値を返す
 ・文字列の終端にあるヌル文字は書きこまれない
 ・復帰文字が自動的に追加されることはない

fgets(char *文字列,int 数値,FILE *ストリーム);
 ・ファイルから文字列を読み込む 
 ・成功すると「文字列」を返し、エラーが発生するとヌルポインタを返す
 ・数値-1分の文字列を読み込むか、改行文字に出会うか、ファイルの終わりに達するまで続く
 ・格納された文字列の後にヌル文字が追加される
 ・改行文字も格納される

fprintf(FILE *ストリーム,char *制御文字列)
fscanf(FILE *ストリーム,char *制御文字列)
 fprintf()とfscanf()を使う利点は様々な形のデータをテキスト形式でファイルに書き込むことが非常に容易になる事です

未解決の外部シンボル_mainが 関数"int_cdecl invoke_main(void)"(? invoke_main@@YAHXZ)で参照されました

独習C進捗 プログラム知識 C言語 Visual Studio

-------2月17日----------------------------------------

今日、引き続きファイルの操作をしてました
そうするとVisual Studio(以下VS)で


LNK2019
未解決の外部シンボル_mainが
関数"int_cdecl invoke_main(void)"(?
invoke_main@@YAHXZ)で参照されました。

LNK1120
1件の未解決の外部参照

という2つのエラーが出てきました。

ファイルを取り扱っていたので「外部に何か」つまりファイル操作だと思いエラーコードを検索してみました

 

出てきた記事は

http://dixq.net/forum/viewtopic.php?f=3&t=16967


質問ツールで誰かのサイトとかではないので信頼の点で怒られそうですが
解決したようですし自分で書き込むのも信頼に欠けるので引用させてもらいました

他にもいくつか見てみた結果、要するに

---------------------------------------------------------
Win32プロジェクトでプロジェクトの作成をやらず

Win32コンソールアプリケーションでやればできました!!!!
---------------------------------------------------------

というものがほとんどでした。

自分の場合はそれをしても解決しなかったのでTwitterに聞いてみると

-----------------------------------

「main関数のスペルを間違ってました」

「mian」としていました…
-----------------------------------

ファイル関連の作業中に外部に問題があると言われてとても焦りましたが
自分のスペルミスだったんですね…


VSではprintf()とかの綴りを間違えると

C3861
'[綴りを間違えた関数]':識別子が見つかりませんでした

などとエラーが出るので安心していました…

 

ファイルの前にもっと早くこの間違いをしていればファイルが原因だと思うことはなく
すぐに問題も解決できていたんですが経験が足りなかったです。

以下教えてもらった過程

 

 

 

独習C9.3-1

独習C進捗

独習Cの進捗状況

 

とりあえずコマンドライン引数が使えるようになったのでやっと独習Cが進めます

 

-------2月16日----------------------------------------

strcmp(文字列1,文字列2)
 <string.h>
 2つの文字列を比較する
「文字列1」「文字列2」が同じ時に0を返す

putchar()
 <stdio.h>
 画面に1文字だけを出力します
 出力エラーが出た場合EOFを返す
 printf()で%c指定子を使って1文字出力するなら、実行速度と効率の点で
 putchar()を使う方が有利
 printf()は非常に多くの機能を持つ柔軟な関数ですがその分、putchar()の呼び出しに比べてオーバーヘッドが大きい


feof(FILE *ストリーム)
 ストリームに結び付けられているファイルの終わりに達していれば
 0以外の値を返し、そうでなければ0を返す

ferror(FILE *ストリーム)
 ストリームに結び付けられているファイルに関してエラーが起こっていれば
 0以外の値を返し、そうでなければ0を返す


次の関数はファイルの終わりまで読み取りエラー検査を追加したもの
 
FILE *fp;

 ・
 ・
 while(!feof(fp)){
  ch=fgetc(fp);
  if(ferror(fp)){
   printf("ファイルエラー\n");
   break;
  }
 }

補足
 本参考書はferror()は省略することがあるが実際はきちんとエラー検出をすべき

 /*ferror()ってなんかちょっと曖昧な感じがしますね*/