ファイルを読み込み、文字数と行数をカウントするプログラムを作成したのですが、実行すると、out.txtに行数は表示されるのですが、文字数が0となっていました。なぜこうなるのでしょうか?
c
1コード 2#include<stdio.h> 3int main() 4{ 5 FILE *fp; 6 int line = 0; 7 int word = 0; 8 char str[2048]; 9 int c; 10 11 fp = fopen("list.txt","r"); 12 13 if( fp == NULL) 14 { 15 printf("Cannot open file¥n"); 16 return 1; 17 } 18 while( fgets(str, 2048, fp) != NULL ) 19 { 20 line ++; 21 } 22 while(( c = fgetc(fp)) != EOF ) 23 { 24 word ++; 25 } 26 fclose(fp); 27 28 fp = fopen("out.txt", "w"); 29 30 if( fp == NULL) 31 { 32 printf("Cannot open file¥n"); 33 return 1; 34 } 35 fprintf( fp, "%d\n", line); 36 fprintf( fp, "%d", word); 37 fclose( fp ); 38 return 0; 39}
c
1list.txtの中身です。 2 3List of countries and dependencies by population density 4From Wikipedia, the free encyclopedia 5This is a list of countries and dependent territories ranked by area and by population. 6Area includes land and water. 7 8Number of countries in the list: 7 9Countries: Australia China India Japan Russia UK US 10 11List of population 12Countries Population 13China 1400055440 14India 1354969000 15US 330263247 16Russia 146877088 17Japan 126577691 18UK 66435600 19Australia 25525452 20 21List of area 22Countries Area 23Russia 17125242 24US 9833517 25China 9640821 26Australia 7692024 27India 3287240 28Japan 377944 29UK 242910 30
list.txt の内容はどうなっていますか?
何行で何文字なんですか?
前回だけでも散々言われてますよね?
そもそもプログラミングってのは『書いて終わり』ではありません。
デバッグっていうのも含みます。
『DIYをやりたい』っていう人が、「椅子を作りたいから誰か設計図を書いてくれ」とか「椅子を作ったが、高さが合わない。誰が修繕してくれ」と言うようなものです。
DIYは修繕もその一部のはずです。
でも自分で修繕しようとすらしない。
『そんなにやりたくないならやらなければ?』と言いたくなりませんか?
別に作らなくとも既製品を店とかで買えばいいし。仮に欲しいものが既製品に無くとも『プロに金を払って頼んで作ってもらう』とかすればいいし。
さらに過去質問を見る限り改善する気が無いようにも思えます。
ひたすら「基礎からやるべき」といわれているのにそれをひたすら無視。
なんか、「プロなんだからこんな簡単なもんできるだろ。は?こんなんで金取るのかよ?ク○かよ!」というク○な態度みたいです。
(自分の持ち場は自分でやるのが当たり前では?)
まずはデバッグからやりましょう。
(ご自分でやることを望んであえて発破をかけています)
さらに、仕様が曖昧です。『表示』とはなんでしょうか?
少なくとも『標準出力』(コンソールへの出力)と『ファイルへの出力』の2種類があります。
さらに組み込み系のように独自の出力先もあったりします。
質問さんにとっては愚問でも回答者は天才ではないので提示された情報からしか読み取れません。
まずは最悪でも『仕様を明確に』しましょう。(できれば自分でデバッグまでしてほしい…)
また、読み込むファイルの内容ぐらいは提示しましょう。コードの問題ではなく、ファイルが無いとか存在していてもファイルの中身が…とかもありえます。
Next CONAN'S Hint: 変数名
なぜこのコードで行数や文字数が得られると思えるのだろう。何となくコードを書くだけで、考えることは回答者に丸投げでしょうか。
まぁ、様々な質問・回答のスタイルがあると思いますが、残念ながら指摘に耳を傾けて改善するつもりは無いようなので、スルーが適当です。
@質問者さん
既にいくつも回答をいただいているのですから、応対しましょう。
回答5件
あなたの回答
tips
プレビュー