なんかいろいろこんぴゅーたかんけいのなぐりがき

なんか勉強しているこんぴゅーた関係のことのメモやそれ以外のことを書こうかなあ...

logs

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

久しぶりにC言語いじった

ひさしぶりにC言語さわった。最近はPythonばっかやってたから、つまずきまくり!!
コンパイルするのがだるく感じる今日この頃。

で、今日つまづいたところをメモしておく。

foo\001.txt
foo\002.txt
...
foo\100.txt

という風に順番にファイルを読みたかったわけだが、もう文字列の操作でかなりもたついた。

まずは001,とか002とかの数字はforで次々にインクリメントしていくんでますはこの数字を文字列になおさなければ
そのためにはstdlib.hをインクルードしてitoa_s(int,char*,int size,10)を行う。
ちなみにPythonだとstr(number)でOK。すばらしい。

さらにitoaしてえた数字の文字列と"foo\"を連結したいわけだが、まず、"foo\"だと'\'がエスケープシーケンスなのでまずいので"foo\\"にしておく、そしてstrncat_sという関数で連結をおこなう。この関数も引数が多くてめんどくさい。
これはPythonだと msg1 + msg2 だけでおわり。本当にありがとうございました。

それで、今回犯したもっともおおきなミスは、fopenの引数で、まず"r"とすべきところを'r'としてしまい、char型で扱ってしまったためエラー。更に、第一引数の文字列のところに文字列がはいったchar配列(char name[128];と宣言した)をいれていたつもりがfopen("name","r")とダブルクオートをつけて引数にしてしまい、ひたすらエラーを示すNULLが返されて30分以上そこでつまった。そして引数をたまたま書き直してそのときにfopen(name,"r")としてうまく動作したのでこのミスに気づいた。なんだかくやしい。
スポンサーサイト

トラックバックURL

http://ilovevim.blog42.fc2.com/tb.php/53-f95d5a0e

この記事へのトラックバック

この記事へのコメント

コメント投稿フォーム

Paging Navigation

Navigations, etc.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。