- ベストアンサー
getcの改行判定
Windowsの構文解析でgetcを使ったプログラムを作ったのですが、 改行の判定に c = getc(fp_in); if(c == '\n'); とすると、 コマンドプロンプトに「コードは効果を持たない」と言われ、 コンパイルして実行してもif文は真にならないみたいです。 改行の判定を行うには正しくはどう記述すればいいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- ファイル読み込み EOF 判定
数字の羅列した単純なテキストファイルを読み込ませたいのですが、 以下のようにすると、途中で改行などで一行あけた場合、そこで読むのを ストップしてしまいます。 if (fgets(buf, sizeof(buf), fp) == NULL) { 改行にくじけることなく、ファイルの最後まで読み込ませるにはどうしたら いいのでしょうか。 ちなみに、以下のようにやると、 while(getc(fp) != EOF){ こんどは改行をものともせず、ファイルのお終いまで読んでくれるのですが、 2バイト文字(頭一文字が化ける)、のっけ一行目に数値(10桁)を置くと 一文字かけて9桁になってしまいます。 2行目以降はちゃんと10桁です。(一行目に改行をいれて、2行目以降に書くと大丈夫のようです。変) 簡単なようで、つまってます。どうかよろしくお願いします。
- ベストアンサー
- C・C++・C#
- c言語 ファイルの読み込み位置
ファイルのアクセス位置を最後から7行目に移動させるプログラムを作っています。 \nを数えることで行数を数えているのですが、以下の処理、間違えていますか? コンパイルしてもできていないので間違えていることは明白なのですが、どこが違うかわかりません。 誰か、力になってください! fseek(fp, -1, SEEK_END);/*読込位置最後にする */ while(!fseek(fp, -2, SEEK_CUR))/*逆順読込ループ*/ { if(getc(fp)=='\n') {cnt++;} if(cnt == 7) {break;} }
- ベストアンサー
- C・C++・C#
- 英文字の出現頻度
英語で書かれているファイルを読み込んで英文字の出現頻度を調べるプログラムを作ったのですが、ところどころ正確な数が表示されません。どなたか教えてもらえませんか?欲を言えばスペースや改行もカウントできれば良いのですが・・・よろしくお願いしますm(_ _)m #include <stdio.h> #define N 500 int main(int argc, char *argv[]) { int c,i=0; int X[N]; FILE *fp; char ch[N]; if( argc != 2) { printf("使い方:コマンド名に続きファイル名を入れてください\n"); return -1; } fp = fopen( argv[1],"rb"); while(fgets(ch,500,fp) != NULL ) { printf("%sファイルにおけるアルファベットの出現頻度\n",argv[1],ch); { while ((c = getc(fp)) != EOF) if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') X[c]++; { for (c = 'a'; c <= 'z'; c++) printf("%c:%d\n",c, X[c]); printf("\n"); for (c = 'A'; c <= 'Z'; c++) printf("%c:%d\n",c, X[c] ); printf("\n"); } } } fclose(fp); return 0; }
- 締切済み
- C・C++・C#
- getcによる空白文字カウントでの問題
下記リストをWindows98、BCC5.5及び、MinGWでコンパイルして実行 する場合、/*注*/の1行をコメントアウトしますとその下のcountが 画面に表示されません。私にはこれは理解の出来ないことで、かな り悩んでいます。どなたかお分かりになる方いらしゃいましたら、 ご教授願います。 #include <stdio.h> int main() { int ch,count=0; printf("文字を入力して下さい。\n"); while((ch=getc(stdin))!=EOF) { if(ch==' ') { count++; } } /*注*/ printf("\n"); printf("count of space = %d \n",count); return 0; }
- ベストアンサー
- C・C++・C#
- 書き込んだファイルに改行が入ってしまう
最後のfp3で書き込んだファイルのsample.txtが Problem Solving and Program Design in CC : A Reference ManualC Primer PlusC How to ProgramC Programming for Engineering and Computer ScienceIntroduction to CProgramming Embedded Systems in C and C++Absolute Beginner's Guide to CNumerical Recipes in C : The Art of Scientific ComputingThe C Programming Language このように途中で改行されてしまいます。 これはBorlandの特徴で仕方がないことなんでしょうか。。 それともプログラムが間違ってるのでしょうか。 ご教授よろしくおねがいします。 if((fp3 = fopen("sample.txt","w")) == NULL){ printf("can't open"); return(-1);//強制終了 } else{//タイトルだけをサンプルに書き出す for(i=0;i<M;i++){ fprintf(fp3,"%s",book[i].title); } } fclose(fp3); fclose(fp2); fclose(fp1); return(0);//正常終了 }
- ベストアンサー
- C・C++・C#
- 改行するにはどうしたらよいのでしょう?
ホームページをPHPを使って、と思いイザ本を買って来て取り組みましたが、いきなりつまづきました。改行ができません。 下のように記述したら、ブラウザにはABCとつながって表示されました。バックスラッシュを入れればよいのかなと思い、調べましたが何やらwindows系では入らないようでした。\nでは、改行にならないのでしょうか。やはり、バックスラッシュを入れないとだめなのでしょうか。どなたか、お分かりになる方教えてください。宜しくお願いいたします。 <?php print "<HTML>"; print "<BODYL>"; print "A\n"; print "B\n"; print "C\n"; print "</BODY>"; print "</HTML>"; ?>
- ベストアンサー
- Visual Basic
- 改行<br>を<br />に変える方法
テキストエリアで改行した際に以下のコードですと改行は<br>になります。 これを<br />に変更したいのですが、自分なりに試してみたのですが全くうまくいきません。 sub decode { &ReadParse; while (($key,$val) = each %in) { if ($key !~ /upfile/ ) { &Jcode'convert(*val, "utf8", "", "z"); if ( $key !~ /label_name/ ) { $val =~ s/</</g; $val =~ s/>/>/g; } $val =~ s/\r\n/<br>/g; $val =~ s/\r|\n/<br>/g; } $in{"$key"} = "$val"; } どなたか<br />に変更する記述を教えて頂けませんでしょうか?
- 締切済み
- CGI
- コマンドプロンプトで変数が数字であることを判定する方法
コマンドプロンプトで変数の中身が数字であることを判定することは可能でしょうか。 変数の内容が0000や1020ならばTRUE、00A0なんかだとFALSEに するIF文を作りたいのです。
- ベストアンサー
- その他(プログラミング・開発)
- ファイルを読み込んで改行だけの行を取り除きたい
こんばんは。 ファイルを読み込んで、改行だけの行を省いて、上書きしたいのですが なぜかうまくいきません。 ループ内にある改行の判定をするIF文がいけないと思うのですが…。 教えていただけないでしょうか? また、シングルクォーテーションダブルっクォーテーションは同じ意味 なのですか?「""」と「''」 作ったプログラムは以下です。 open(OUT,">$ssifile"); #改行のみのデータは除く @newtbl = (); foreach $siline ( @slines) { if ($slines ne "\n") { push @newtbl, $siline; } } print OUT @newtbl; close(OUT); 宜しくお願いいたします。
- ベストアンサー
- CGI
- XK500のwifi接続がうまくいきません。試行した回数は多く、すべての可能な解決策を試しましたが、接続が確立されません。
- パソコンの画面には該当するプリンターが表示されますが、wifi接続ができません。
- セキュリティソフトをアンインストールしても、問題は解決しませんでした。
お礼
#include <stdio.h> End of line 正しく判定が行われてますね。 ではc == '\n'という判定の仕方は正しいのですね。 ということは他の箇所に誤りがある様です。 回答して下さった方々どうもありがとうございます。 そして色々とご迷惑お掛けしてすみませんでした。 自分で再度ソースを見直してみます。