勝手にしやがれ Part2.

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

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

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

【124】Re:LOGSORTW ver1.25.2 としき 2008/10/09(木) 22:09
【125】Re:LOGSORTW ver1.25.2 文太 2008/10/10(金) 18:02
【127】Re:LOGSORTW ver1.25.2 としき 2008/10/11(土) 12:53
【128】Re:LOGSORTW ver1.25.2 文太 2008/10/11(土) 13:28
【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

【124】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/09(木) 22:09 -

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

> どうでもいいメモです(すいません)。

どうでもいいレスをつけさせていただきます。
つまらんもので引きずって申し訳ない。>Siさん

>方法4
>>jgawk "{print}" file    #素直、素直

方法4’
>jgawk "1" file    #ひねくれ

方法6
#include <stdio.h>
int main(){int c;
while((c=getchar())!=EOF)putchar(c);
if(c!='\n' && c!='\r' && c!='\l')putchar('\n');
}
/* LSI-Cで動作確認済み */

何やってんだか。


> とやるのが吉なわけです。いいねぇ、ワイルド。m(__)m

いや、全く。


【125】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/10(金) 18:02 -

引用なし
パスワード
   > /* LSI-Cで動作確認済み */

 ダウト!

【127】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/11(土) 12:53 -

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

> ダウト!

うあ〜、あと1枚だったのに〜!


まじめな話、敗因は、書き込む直前に

#include "mylib.h"

を削除してしまった事だと思います。
だよなぁ。ちょっと自信なし。
ということで、修正版。

#include <stdio.h>
int main(){int c;
while((c=getchar())!=EOF)putchar(c);
if(c!='\n' && c!=0x0d && c!=0x0a)putchar('\n');
}
/* LSI-Cで動作確認済み */

今度は大丈夫、だといいなぁ。

【128】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/11(土) 13:28 -

引用なし
パスワード
   Siさん(変な展開で、すいません)
としきさん、ありがと。うふ。


C:\>lcc addtail.c
lld @link.i

C:\>command.com /cdir addtail.exe

ADDTAIL EXE   6319 08-10-11  13:15
    1 個      6319 バイトのファイルがあります.
          957803520 バイトが使用可能です.

C:\>type test.txt
aaaaaaaaaaaaa
bbbbbbbbbbbbbbb
C:\>addtail test.txt
^C

C:\>addtail <test.txt
aaaaaaaaaaaaa
bbbbbbbbbbbbbbb
                ;ココだよん\(^_^)/
C:\>type OK.txt
/* LSI-Cで動作確認済み */    ;the first ever compling of C program!!!

C:\>type addtail.c
#include <stdio.h>
int main(){int c;
while((c=getchar())!=EOF)putchar(c);
if(c!='\n' && c!=0x0d && c!=0x0a)putchar('\n')    ;ここがいけない
}            ;のは分かってたのだけど、#include <ctype.h>
            ;でも駄目だった。ありがとうございました。
            ;読めます、だいたい。m(__)m

【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,004
(SS)C-BOARD v3.8 is Free