勝手にしやがれ Part2.

【投稿時の注意】
パスワード入力:必須。投稿後の削除時は同じパスワードを使います。
投稿者入力:いまのところ任意。入力を省略すると「名無しさん」がデフォルトで表示されます
Eメール入力:いまのところ任意。
リンクの入力:本文中に http の文字列が含まれると投稿出来ません。URL を貼るときは h 抜きで ttp:// とするなど工夫してみて下さい

3 / 13 ツリー ←次へ | 前へ→

【66】難しいのかもしれない要望です(logsortw)m(__)m 文太 2008/09/19(金) 0:47

【138】Re:LOGSORTW ver1.25.2 Si 2008/10/19(日) 23:34
【139】Re:LOGSORTW ver1.25.2 としき 2008/10/20(月) 22:21
【140】Re:LOGSORTW ver1.25.2 文太 2008/10/20(月) 22:32
【142】Re:LOGSORTW ver1.25.2 としき 2008/10/20(月) 23:42
【143】Re:LOGSORTW ver1.25.2 文太 2008/10/21(火) 13:20
【147】Re:LOGSORTW ver1.25.2 としき 2008/10/21(火) 20:48
【148】Re:LOGSORTW ver1.25.2 文太 2008/10/22(水) 10:58
【146】EOF? 文太 2008/10/21(火) 14:26
【150】ファイル末改行付加 文太 2008/10/22(水) 21:18

【138】Re:LOGSORTW ver1.25.2
 Si  - 2008/10/19(日) 23:34 -

引用なし
パスワード
   ▼としきさん:
>if(c!='\n' && c!=0x0d && c!=0x0a)putchar('\n');

横から失礼します。

'\n' = 0x0a

じゃなかったでしたっけ?
茶々入れですみませんm(__)m

【139】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/20(月) 22:21 -

引用なし
パスワード
   ▼Siさん:

>'\n' = 0x0a
>じゃなかったでしたっけ?

そうかもしれません。
実はあのコード、何も資料を確認せずに記憶だけで書いたんですよ。
一応、LSI-CでコンパイルしてDOSで実行確認は取ったんですが、
確か、DOSとUNIXとMacで改行コードが違うという話があったなぁ、
と思い出しました。一応、ソースを載せる以上、どんな環境でも
動いてほしいけど、でも、わざわざ調べるのも面倒、ということで、
安全側に倒すという意味での妥協の産物ですね。

【140】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/20(月) 22:32 -

引用なし
パスワード
    何だか(日頃の)ご恩を仇でかえすみたいなのですが。

--------------------------------------
C:\>command.com /ctype t1
with \n

C:\>command.com /ctype t2
without \n
C:\>Lsed "n" t1
with \n

C:\>Lsed "n" t2
without \n

C:\>addtail <t1
with \n


C:\>addtail <t2
without \n

C:\>
--------------------------------------
 確かに何かバグってるみたいですね。やっぱ読めないから直せないのですが。
 仕様は「ファイルの最終行が改行文字で終わっていない場合に、改行文字を付
加する」です。どうでもいいことですいません。性格、悪いなぁ。(^^;ゞ
m(__)m

【142】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/20(月) 23:42 -

引用なし
パスワード
   > 何だか(日頃の)ご恩を仇でかえすみたいなのですが。

それは全然問題ないのですが。

> 確かに何かバグってるみたいですね。やっぱ読めないから直せないのですが。

こちらの方は大問題です。
というか、私が実験した時はそうはならなかったはず。
いや、そうならなかったような気がする。
そうならなかったんじゃないかなぁ。
何か見間違えたのかなぁ。

とりあえず、あとでもう一度実験してみます。
何を失敗したのかなぁ。
まさか、EOF?

【143】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/21(火) 13:20 -

引用なし
パスワード
    少なくともEOFが原因ではないようです。Ez-な人ですので。
 EOFって、1Aなんですね。

Ez-            ;EOF コードの付加

C:\>dump t1
00000000 77 69 74 68 20 5C 6E 0D-0A           |with \n..

【146】EOF?
 文太  - 2008/10/21(火) 14:26 -

引用なし
パスワード
   > まさか、EOF?
> while((c=getchar())!=EOF)putchar(c);

 もしかして、EOFがファイルにあることが前提なのかな?
 しかし、これって、1文字ゲットしては1文字出力し、ってやってるわけですか?

【147】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/21(火) 20:48 -

引用なし
パスワード
   > 少なくともEOFが原因ではないようです。

違います。私のソースコードの方が間違っている、ということです。
昨夜は眠かったので正しいソースコートが提示できませんでしたが、
元々のコード、EOFが来たらループから脱出、となっているのに、
脱出直後に、来たのが「EOFではない」特定のコードであったら、
という形になっています。これでは正しく動くわけがありません。
ということで、さらに修正版。

#include <stdio.h>
int main(){
int c,c2;
while((c=getchar())!=EOF){
putchar(c);
c2=c;
}
if(c2!='\n' && c2!=0x0d && c2!=0x0a)putchar('\n');
}

一応、今回もチェックしてOKである事の確認は取ったのですが、
前回もチェックOKを出したのに実はNGだったわけで。
また夢を見ているだけかもしれません。

【148】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/22(水) 10:58 -

引用なし
パスワード
   としきさん

------------------------------
C:\LSI>lcc ADDTAIL2.C
lld @link.i

C:\LSI>addtail2 <t1
with \n

C:\LSI>addtail2 <t2
without \n

------------------------------
 めでたしめでたし。

【150】ファイル末改行付加
 文太  - 2008/10/22(水) 21:18 -

引用なし
パスワード
    しつこいのですが。たぶんこれが最短。少なくともsedを使うなら。

-------------------
C:\XYZ>command.com /ctype abc
without \n
C:\XYZ>lsed "" abc   #logos版
without \n

C:\XYZ>oldsed "" abc  #serow版(たぶん他のsedでは駄目)
without \n       #bugともfeatureとも言える仕様です。

C:\XYZ>
-------------------

3 / 13 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
14,005
(SS)C-BOARD v3.8 is Free