- 1 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 11:02:46 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/
- 172 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 23:34:00 ]
- もう寝るから、>>161がコピペしたものだとして、間違いを指摘するぞ。
■間違い1 余計なところにセミコロンがある。(2箇所) { } は、複数の文をひとまとめにするものであって、 if文、for文、while文の構文の一部ではない。 たとえば、 for(a=0;a<26;a++);{ n[a] = 0 ; } というのは、 for(a=0; a<26; a++) { /* 何もしない */ } { n[a] = 0 ; } という意味になる。 ■間違い2 変数名が間違っている。 fp = fopen("Count.txt","w"); ↑これはfpではなくfpbだろう。 ■間違い3 whileの条件は実際に実行される while(fgets(s, 256, fp) != NULL);{ fgets(s,256,fp); 条件文のfgetsはループの先頭で実行されるので、 このように書くと、fgetsを2回呼ぶことになってしまう。
- 173 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 23:42:16 ]
- ■ループではないのにwhile文を使うな(if文を使うべき場所でwhile文を使うな)
while( s[a] != '\0' ) { このwhileは無限ループするぞ。 ■マジックナンバーを使うな ■ファイルに出力する文字列は改行を入れたほうがいいんじゃない? それから、 学校の宿題なら、宿題スレに行ったほうがいいと思うぞっと。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 23:48:12 ]
- 忘れてた。
ソースファイルからコピペしろ! と言ったのは、 タイプミスが、プログラムが思い通りに動かない原因になりうるから。 1文字違うだけで、プログラムは違う内容になってしまうから。 タイプミスには重々気をつけて、よく見直すこと。 プログラムの実行結果が、 意図したものにならなかった場合は、 プログラムが思い通りに動いてない。 そういう場合は、まず、 デバッガでステップ実行して、 自分が思っていた通りに動いているのか、確認すること。 かなりの問題点は、デバッガでステップ実行することで、発見できる。
|

|