改行を読み飛ばす
以下のようなファイルを読み込みたいのですが….
--------------------------------------------------
あいうえを
かきくけこ
さしすせそ
たちつてと
--------------------------------------------------
のように1行文字列があって,1行空白行(改行のみ)があって…のような繰り返しのファイルなんですが,空白行を読み飛ばして続けて
--------------------------------------------------
あいうえお
かきくけこ
さしすせそ
たちつてと
--------------------------------------------------
のように表示させる場合はどのように書いたらよいですか?
--------------------------------------------------
while(fgets(str,256,fpin)){
if(strcmp(str,"\n")!=0){
printf("%s\n",str);
}
}
--------------------------------------------------
と書いたのですが,空白行も表示されてしまいます.
何か間違えているでしょうか?
それとも実はファイルの空白行は改行じゃないとかでしょうか?
お礼
いろいろ検証していますが、 yambejpさんの教えて下さった方法は全て、通常であれば問題なく機能するコードですね。 それが、ひとまず分かりました。 問題は依然として解決していないのですが、 また別の視点で考えて頂きたいので、ちょっと補足をします。 私が今していることは、 外部のサイトからfile_get_contents()で得たHTMLソースの中から、 一部を抜粋し、その中にある空白行(改行連発)を除去する ということです。 しかし、それがどのようにやっても、うまくいかないので、 次に、そのHTMLソースの一部を手動でコピーし、 それを自作のファイルにペーストし、 それに対して、file_get_contents()し、同様の操作をした所、 なぜかうまくいきました。 つまり、 外部サイトのソースをそのまま使うとダメで、 一度、自分のファイルとして作り直し、そこから引っ張ってくる という方法だと、うまくいくのです。 これはなぜなんでしょう? 同じ改行ではないのでしょうか? 私はDream Weaverを使っていますが、 ここにペーストすると、それまでの改行コードが、 こちらにとって都合のいい、\nや\r\nに変更されるのでしょうか。 だとすると、オリジナルの改行コードって一体、何者なのでしょう…。 どーしても、消したいのに…。 と、多少、検証はできましたが、今後の指針が見えてきません…。 もし、なにかわかることがありましたら、教えて下さい。 宜しくお願いします。
補足
なんだか色々検証していたら、問題が解決してしまいました。 理由は謎です。 サーバのキャッシュか、何かは分かりませんが、 その「時間的な問題」から、解き放たれたのかもしれません。 よって、 特に変更はしていないはずですが、問題は解決されました。 つまり、 preg_replace("/(\r\n|\n)+/","$1",$html); これでうまくいっております。 おかげさまで助かりました。 また分からないことがありましたら、宜しくお願いします。