C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 147
http://mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 148
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウカー Sacf-slpW)
2018/09/19(水) 17:56:50.83ID:XSTNMnDwa559デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/08(月) 16:51:30.03ID:wTnfR6Jf0 大昔ソケットレベルから自前でHTTPクライアント作ったことある
TCPプロトコルを学ぶ良い勉強になるよ
TCPプロトコルを学ぶ良い勉強になるよ
560デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 16:56:21.14ID:SHTmPUE+0 相変わらず低学歴知恵遅れは頭悪いこといってるわ
ソケット通信でTCPプロトコルとか
オマエがソケット通信でやりとりしてんのはHTTP
ホントななんでココまで頭悪いのしかいないのか不思議
ソケット通信でTCPプロトコルとか
オマエがソケット通信でやりとりしてんのはHTTP
ホントななんでココまで頭悪いのしかいないのか不思議
561デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:00:43.05ID:SHTmPUE+0 トランスファープロトコルにTCP/IP使ってるといっても
きっとこのスレの低学歴知恵遅れは意味が分からない
smtpもftpもほとんどが普通にtcp/ipだからな
いまどきのnetbiosも普通にtcp/ipだからな
昔はトランスファープロトコルにnetbeuiつかってた
で、今ではnetbios over tcp/ipで
nbtとかなんとかいってる
きっとこのスレの低学歴知恵遅れは意味が分からない
smtpもftpもほとんどが普通にtcp/ipだからな
いまどきのnetbiosも普通にtcp/ipだからな
昔はトランスファープロトコルにnetbeuiつかってた
で、今ではnetbios over tcp/ipで
nbtとかなんとかいってる
562デフォルトの名無しさん (アウアウエー Sa6a-syNg)
2018/10/08(月) 17:32:32.71ID:i8/5B6xca >>561
知らんテクニカルタームは使うときに確認しろよ
知らんテクニカルタームは使うときに確認しろよ
563デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:34:14.12ID:SHTmPUE+0 また低学歴知恵遅れが意味不明ないちゃんもんとけてるし
先にいっとくけどな
とてつもなく頭悪いこといってんのオマエだからな
まずその自覚がない
先にいっとくけどな
とてつもなく頭悪いこといってんのオマエだからな
まずその自覚がない
564デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:35:52.31ID:SHTmPUE+0 pop3もtcp/ip
sshもtcp/ip
httpsもtcp/ip
きっとな低学歴知恵遅れには
なにをいってるのいかが分からないとは思うわ
sshもtcp/ip
httpsもtcp/ip
きっとな低学歴知恵遅れには
なにをいってるのいかが分からないとは思うわ
565デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:37:36.24ID:SHTmPUE+0 ホントな低学歴知恵遅れは
頭悪いことを自信満々でいうから困るわ
頭悪いことを自信満々でいうから困るわ
566デフォルトの名無しさん (ブーイモ MM5e-ebK2)
2018/10/08(月) 17:44:32.09ID:BtXxUchaM 基本情報どころかITパスポート程度の知識でドヤってるのか
低学歴知遅れ君は
低学歴知遅れ君は
567デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:47:16.60ID:SHTmPUE+0 それにすら到達してない低学歴知恵遅れが
ドヤってるスレがこの板だからな
マジで低学歴知恵遅れはこの板から排除したほうがいい
有害
ドヤってるスレがこの板だからな
マジで低学歴知恵遅れはこの板から排除したほうがいい
有害
568デフォルトの名無しさん (アウアウエー Sa6a-syNg)
2018/10/08(月) 17:48:30.52ID:i8/5B6xca じゃあ「トランスファープロコトル」ってなんだか説明してくれよ…
なんだよ「ソケット通信でHTTP」って。
なんだよ「ソケット通信でHTTP」って。
569デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:50:22.69ID:SHTmPUE+0 HTTPというのは
ハイパーテキストトランスファー プ ロ ト コ ル
だからな
ソケット通信(トランスファープロトコル意識する必要ない)で
HTTPの内容してるだけだ
わかった?
ハイパーテキストトランスファー プ ロ ト コ ル
だからな
ソケット通信(トランスファープロトコル意識する必要ない)で
HTTPの内容してるだけだ
わかった?
570デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:51:32.47ID:SHTmPUE+0 ソケット通信でHTTPの内容をヤリトリしてるのすら分かってないワケだからな
ここまで頭悪いと話にならない
ここまで頭悪いと話にならない
571デフォルトの名無しさん (ブーイモ MM5e-ebK2)
2018/10/08(月) 17:51:37.49ID:BtXxUchaM 低学歴知遅れ君ってプロトコルの意味を理解してなさそう
572デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:52:10.92ID:SHTmPUE+0 で、低学歴知恵遅れの負けず嫌いは半端ないからな
573デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/08(月) 17:52:42.31ID:SHTmPUE+0 これ以上語るつもりはない
574デフォルトの名無しさん (ワッチョイ 15c7-vBoO)
2018/10/08(月) 17:55:15.29ID:o/CKA6Eq0 昨日読んだTCPの本がよっぽど気に入ったんだね
575デフォルトの名無しさん (アウアウエー Sa6a-syNg)
2018/10/08(月) 17:59:44.79ID:i8/5B6xca だからなんだよ「トランスファープロトコル」って
576デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/08(月) 18:24:47.89ID:wTnfR6Jf0 TCP Transmission Control Protocol
IP Internet Protocol
トランスポート層 TCP, UDP, DCCP, SCTP, IL, RUDP
似たような言葉はあるが、その表現は見つからないな
並行宇宙のどこかで使っているかもしれないが
ここではなさそうだ
IP Internet Protocol
トランスポート層 TCP, UDP, DCCP, SCTP, IL, RUDP
似たような言葉はあるが、その表現は見つからないな
並行宇宙のどこかで使っているかもしれないが
ここではなさそうだ
577デフォルトの名無しさん (ワッチョイ b064-selW)
2018/10/08(月) 18:25:27.11ID:NcWFD+EU0 あー。TCPというのはHTTPよりもう少し下層に位置する概念ってことかな?(合ってるか不安)
俺が作りたいなぁと思ったのは
$ xxx 'example.com'
とやるとブラウザでexample.comにアクセスして「ページのソースを表示する」機能を使ったときのような出力を返すコマンド。
これはTCPクライアントじゃなくてHTTPクライアントか。
俺が作りたいなぁと思ったのは
$ xxx 'example.com'
とやるとブラウザでexample.comにアクセスして「ページのソースを表示する」機能を使ったときのような出力を返すコマンド。
これはTCPクライアントじゃなくてHTTPクライアントか。
578デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/08(月) 18:27:46.37ID:wTnfR6Jf0579デフォルトの名無しさん (ワッチョイ b7b3-Ww/X)
2018/10/08(月) 18:29:18.08ID:lYyho1IC0 「トランスファープロトコル」は星の数ほどある「〜転送プロトコル」の用語として使われるけど、トランスファープロトコル単体で使用されてるのは聞いたことないね。
きっとトランスポートプロトコルの間違い。
きっとトランスポートプロトコルの間違い。
580デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/08(月) 18:29:27.24ID:wTnfR6Jf0 あ、下層というよりもアプリケーション層ですね
581デフォルトの名無しさん (アウアウエー Sa6a-syNg)
2018/10/08(月) 18:42:58.85ID:i8/5B6xca >>577
まあGETするだけだったらそれこそTCPだけでもいい。
勉強としては、HTTPサーバにtelnetしてGETコマンド(と、いくつかのヘッダ)を打ち込んでみると、イメージがつかめるのではないかと。
まあGETするだけだったらそれこそTCPだけでもいい。
勉強としては、HTTPサーバにtelnetしてGETコマンド(と、いくつかのヘッダ)を打ち込んでみると、イメージがつかめるのではないかと。
582デフォルトの名無しさん (ワイモマー MM5a-QNrK)
2018/10/08(月) 19:28:25.64ID:ksVOiCMkM 半角久しぶりに来てんじゃん
やっぱお前が釣らなきゃ盛り上がらんな
やっぱお前が釣らなきゃ盛り上がらんな
583デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/08(月) 19:39:09.30ID:sIA/07pT0 そろそろ知ったかマウント君はいなくなったかな?
584デフォルトの名無しさん (ササクッテロ Sp88-QFHg)
2018/10/08(月) 19:44:22.79ID:VRFV8oUEp クソガキ多いねw
585デフォルトの名無しさん (ワッチョイ 7f35-vBoO)
2018/10/08(月) 19:45:29.27ID:o48XySPi0 勉強したいならCで
スティーブンス本で検索すれば、役に立つ書籍があるよ
使いたいだけならpostmanとかcurlでえんじゃね?
スティーブンス本で検索すれば、役に立つ書籍があるよ
使いたいだけならpostmanとかcurlでえんじゃね?
586デフォルトの名無しさん (ブーイモ MMfd-c4eZ)
2018/10/08(月) 19:58:16.19ID:/43gNJgrM ファーwww
587デフォルトの名無しさん (ワッチョイ fa9f-v2gR)
2018/10/08(月) 20:47:31.58ID:FGHe46tu0 半角くんとかvoidくんとかこのスレには個性的な人が多いねw
588デフォルトの名無しさん (ワッチョイ 27cc-smg0)
2018/10/13(土) 20:15:38.78ID:mLt7ea1s0 すみません、C言語出テキストファイルの特定行を書き換えたいのですが
全て配列に読み込む→変更する→全て書き戻す
という方向しかないでしょうか。
変更前 01.txt
a=1
b=1
c=1
変更後 01.txt
a=1
b=0
c=1
こういった変更を行いたいです。
全て配列に読み込む→変更する→全て書き戻す
という方向しかないでしょうか。
変更前 01.txt
a=1
b=1
c=1
変更後 01.txt
a=1
b=0
c=1
こういった変更を行いたいです。
589デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/13(土) 20:23:20.71ID:L3Dj2/gz0 標準入力から1行ずつひたすら読み込む
特定行以外をひたすら同じ内容を標準出力に出力する
特定行だけ変更内容を標準出力に出力する
できた
特定行以外をひたすら同じ内容を標準出力に出力する
特定行だけ変更内容を標準出力に出力する
できた
590デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/13(土) 20:36:09.45ID:L3Dj2/gz0 aho.sh
----
#!/bin/bash
aho < 01.txt > 01_tmp.txt
mv -f 01_tmp.txt 01.txt
引数でファイル名を指定するどうでもいいことがどうしてもしたい場合は
一旦、プログラムでテンポラリファイルに書きだして
プログラムで最後にmvする必要がある
----
#!/bin/bash
aho < 01.txt > 01_tmp.txt
mv -f 01_tmp.txt 01.txt
引数でファイル名を指定するどうでもいいことがどうしてもしたい場合は
一旦、プログラムでテンポラリファイルに書きだして
プログラムで最後にmvする必要がある
591デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/13(土) 20:51:29.26ID:L3Dj2/gz0 https://ideone.com/CYlw3P
あとはテキトーにやりなさい
あとはテキトーにやりなさい
592デフォルトの名無しさん (ワッチョイ dfb3-EA7j)
2018/10/13(土) 21:16:47.20ID:f9khLXsZ0 >>588
その例みたいにサイズが変わらないなら直接書き換えることは可能
その例みたいにサイズが変わらないなら直接書き換えることは可能
593デフォルトの名無しさん (ワッチョイ 674f-gma9)
2018/10/13(土) 21:39:37.11ID:bu3lDLSN0594デフォルトの名無しさん (アウアウエー Sa9f-M9VF)
2018/10/13(土) 22:17:43.48ID:2jvN7D8ra >>591
voidがねえし
voidがねえし
595デフォルトの名無しさん (アウアウウー Saeb-zIC7)
2018/10/13(土) 23:02:07.79ID:3osNA+cUa >>588
その方向しかない
その方向しかない
596デフォルトの名無しさん (ワイモマー MMff-ytAd)
2018/10/13(土) 23:32:20.23ID:LnxaR5jgM 「特定行」の定義は?
597デフォルトの名無しさん (ワッチョイ bf3a-DKnb)
2018/10/13(土) 23:33:28.10ID:LwGfYqlW0 >>588
UNIXならmmap()、WindowsならCreateFileMapping()を使ってファイルの内容をメモリにマップするとか。
UNIXならmmap()、WindowsならCreateFileMapping()を使ってファイルの内容をメモリにマップするとか。
598デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/13(土) 23:34:05.47ID:L3Dj2/gz0 書いてあることをすべてCでやりたいなら
コレでいける
ぜんぶメモリにいれる必要はない
@ 入力ファイル(01.txt)をリードオンリーでオープン
A テンポラリファイル(出力ファイル)をmktemp()で取得
B Aで取得した出力ファイルをライトオンリーでオープン
C 1行ずつ読み込んで1行ずつ書きこみ(>>591)
D 入力ファイルと出力ファイルをクローズ
E 入力ファイルをremove()で削除
F 出力ファイルをrename()で入力ファイルに移動
ものすごい大きいファイルが入力ファイルになった場合対応できない
コレでいける
ぜんぶメモリにいれる必要はない
@ 入力ファイル(01.txt)をリードオンリーでオープン
A テンポラリファイル(出力ファイル)をmktemp()で取得
B Aで取得した出力ファイルをライトオンリーでオープン
C 1行ずつ読み込んで1行ずつ書きこみ(>>591)
D 入力ファイルと出力ファイルをクローズ
E 入力ファイルをremove()で削除
F 出力ファイルをrename()で入力ファイルに移動
ものすごい大きいファイルが入力ファイルになった場合対応できない
599デフォルトの名無しさん (ワッチョイ 0761-zIC7)
2018/10/14(日) 01:05:48.11ID:fk9HLJgw0 オフセットズレが発生するファイルの更新はファイルの全面書き出し以外に方法はない
600デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/14(日) 01:17:59.64ID:Xia0NB2F0 ファイル後ろの方だと大きなファイルでも部分的な書き直しで済むんだよね
601588 (ワッチョイ 27cc-smg0)
2018/10/14(日) 02:24:40.11ID:bBeuqmk90602デフォルトの名無しさん (ワッチョイ dfd2-7vHE)
2018/10/14(日) 02:31:42.91ID:VGDv0f/D0 なんとなくsedで済む話な気がする
603デフォルトの名無しさん (ブーイモ MM0b-ZPHe)
2018/10/14(日) 02:52:55.98ID:xvapfCASM >>601
ファイル入出力ストリームなら必要
あの例は標準入出力を指定してるだけ
すべて触る必要があるかはデータ構造次第
更新するデータ域をブロック分割、
ブロックマップをメタ管理とかは
バイナリなら一般的な手法
テキストだとスペースパディングで
ブロックやエントリ管理できそうだが
そんなことやってる奴は見たことない
ファイル入出力ストリームなら必要
あの例は標準入出力を指定してるだけ
すべて触る必要があるかはデータ構造次第
更新するデータ域をブロック分割、
ブロックマップをメタ管理とかは
バイナリなら一般的な手法
テキストだとスペースパディングで
ブロックやエントリ管理できそうだが
そんなことやってる奴は見たことない
604デフォルトの名無しさん (ワッチョイ bf9f-4Hut)
2018/10/14(日) 03:26:16.87ID:rKkXAekW0 >>601
stdin から読むようになってるからシェルのコマンドラインからならリダイレクトで読ませれば良いだけだよ。
stdin から読むようになってるからシェルのコマンドラインからならリダイレクトで読ませれば良いだけだよ。
605デフォルトの名無しさん (ワッチョイ a77e-4Hut)
2018/10/14(日) 06:21:09.87ID:1QMkRc1k0 cat 01.txt | sed s/b=1/b=0/
>>594
スタートアップから渡される argc, argv を「使わない」のだから void なしが妥当なのでは?
スタートアップから渡される argc, argv を「使わない」のだから void なしが妥当なのでは?
607デフォルトの名無しさん (ワッチョイ 674f-gma9)
2018/10/14(日) 09:33:04.94ID:p/Li638e0608デフォルトの名無しさん (ワッチョイ a77e-4Hut)
2018/10/14(日) 09:38:03.86ID:1QMkRc1k0609デフォルトの名無しさん (ワッチョイ a77e-4Hut)
2018/10/14(日) 09:39:21.07ID:1QMkRc1k0 例の半角野郎がまた湧いたか、しつけーな
何が上司だ、ここはム板だぼけ
何が上司だ、ここはム板だぼけ
610デフォルトの名無しさん (ワッチョイ df12-gma9)
2018/10/14(日) 10:56:40.88ID:8TmCYtNe0 >>606
引数 void って初めて見たぞ。文法的にありなのかこれ?
引数 void って初めて見たぞ。文法的にありなのかこれ?
611デフォルトの名無しさん (ブーイモ MM0b-SHtH)
2018/10/14(日) 10:58:50.59ID:br2DRGrhM 未だ許されないvoidおじ
612デフォルトの名無しさん (ワイモマー MMff-ytAd)
2018/10/14(日) 12:19:08.18ID:vwPmx6lGM 特定行の書き換えですが
・bの値を反転させたい(0なら1、1なら0)
・b=の行は複数出現する可能性がある()
・複数出現した場合は一番最後に出現した行の値を反転の対象にしたい
・書き換え後はb=の行は1行だけにしたい
・書き換え後はできれば
a=...
b=...
c=...
な感じでソートしててほしい
これはC言語で出来ますか?
どうやったらいいでしょうか?
・bの値を反転させたい(0なら1、1なら0)
・b=の行は複数出現する可能性がある()
・複数出現した場合は一番最後に出現した行の値を反転の対象にしたい
・書き換え後はb=の行は1行だけにしたい
・書き換え後はできれば
a=...
b=...
c=...
な感じでソートしててほしい
これはC言語で出来ますか?
どうやったらいいでしょうか?
613デフォルトの名無しさん (ワッチョイ 674f-gma9)
2018/10/14(日) 13:29:01.06ID:p/Li638e0 >>612
「出来る/出来ない」なら、そりゃC言語で「出来ない」って事ははほぼ全ての事例で無いよ。
どうやったらいいか、なら、その場合は俺ならExcel使うね。規模的に無理ならシェルスクリプトを使う。
何でもCでやればいいわけではない。
そのお題を実際にCでやる事なんて無いから、練習用なら意味無いし、
本番としてそれをCでやる気なら、間違ってるから止めとけ。
「出来る/出来ない」なら、そりゃC言語で「出来ない」って事ははほぼ全ての事例で無いよ。
どうやったらいいか、なら、その場合は俺ならExcel使うね。規模的に無理ならシェルスクリプトを使う。
何でもCでやればいいわけではない。
そのお題を実際にCでやる事なんて無いから、練習用なら意味無いし、
本番としてそれをCでやる気なら、間違ってるから止めとけ。
614デフォルトの名無しさん (ワッチョイ c78a-ScHU)
2018/10/14(日) 13:32:34.90ID:oxI7rgHj0615デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/14(日) 14:42:07.27ID:Q3eQCyRU0 コードの書き方みたいなこんなもんを上司に聞けとか
よくわからんが、協力会社で入ってるリーダーかなんかか。。。
すげえな、そういった会社の文化をオレは知らないが
そもそもそんなとこが未教育なゴミつれてきたら大問題だからな
必死になるのも分かるわ
で、だれでもすぐ分かってるコマンド書いてドヤ顔して低学歴もいるしな
よくわからんが、協力会社で入ってるリーダーかなんかか。。。
すげえな、そういった会社の文化をオレは知らないが
そもそもそんなとこが未教育なゴミつれてきたら大問題だからな
必死になるのも分かるわ
で、だれでもすぐ分かってるコマンド書いてドヤ顔して低学歴もいるしな
616デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/14(日) 14:43:20.19ID:Q3eQCyRU0 この程度ならCで書いても
普通にCで書く練習になる
普通にCで書く練習になる
617デフォルトの名無しさん (ワイモマー MMff-ytAd)
2018/10/14(日) 14:46:42.49ID:vwPmx6lGM Excelで手作業とかは論外です
シェル芸でもいいです
誰かできませんか?
シェル芸でもいいです
誰かできませんか?
618デフォルトの名無しさん (ワッチョイ bfd5-KnhR)
2018/10/14(日) 14:48:14.42ID:b97yHnkE0 >>617
どこまで書いたのか、現状のコードを貼ってみなよ
どこまで書いたのか、現状のコードを貼ってみなよ
619デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/14(日) 14:48:35.94ID:Q3eQCyRU0 sedとsort使えばいい
620デフォルトの名無しさん (ワッチョイ 674f-gma9)
2018/10/14(日) 15:12:45.83ID:p/Li638e0621デフォルトの名無しさん (ワイモマー MMff-ytAd)
2018/10/14(日) 16:43:39.96ID:vwPmx6lGM ロジックだけでも教えてください
622デフォルトの名無しさん (ワッチョイ 6735-4Hut)
2018/10/14(日) 17:39:13.57ID:+7qWkF0t0 こんな感じでどうかな
・空行はそのまま出力されてしまう
・代入文は1行に1文のみで X=n の形式
が前提だけど
awk -F= '{if($1=="b") b=$2; else print;} END{printf("b=%d\n", xor(b, 1))}' a | sort -u
・空行はそのまま出力されてしまう
・代入文は1行に1文のみで X=n の形式
が前提だけど
awk -F= '{if($1=="b") b=$2; else print;} END{printf("b=%d\n", xor(b, 1))}' a | sort -u
623デフォルトの名無しさん (ワッチョイ 6735-4Hut)
2018/10/14(日) 17:41:50.05ID:+7qWkF0t0 あ、a はファイルね
624デフォルトの名無しさん (ワッチョイ 6735-4Hut)
2018/10/14(日) 17:46:59.25ID:+7qWkF0t0 -u はいらんかったな
625デフォルトの名無しさん (ワッチョイ 67b3-wEhW)
2018/10/14(日) 17:52:44.40ID:El+yY4uS0 >>621
tacで逆順出力、sedで初回マッチのみ置換、sortでソート出力
tacで逆順出力、sedで初回マッチのみ置換、sortでソート出力
626デフォルトの名無しさん (ワッチョイ 6735-4Hut)
2018/10/14(日) 18:07:48.33ID:+7qWkF0t0 tac なんてコマンドがあるんだな、サンキュー
sed 使った場合、0と1の交換と、初回マッチ分以外は出力しないようにするの、難しくない?
sed 使った場合、0と1の交換と、初回マッチ分以外は出力しないようにするの、難しくない?
627デフォルトの名無しさん (ワッチョイ 7f80-WnU0)
2018/10/14(日) 18:31:52.87ID:hWarSIQ50 Ruby で作った
text = File.read 'data.txt'
ary = [ ]; index = [ ]
text.each_line.with_index do | line, idx | # 各行・添字
line.chomp! # 末尾の改行を削除する
ary.push line # 各行を配列に入れる
# 先頭文字列が、b= なら、添字を配列に入れる
index.push idx if line.start_with? 'b='
end
return if index.empty? # 空配列なら処理なし
first = true # 最初の1回だけ処理する
index.reverse!.each do | num | # 後ろから削除するために、反転する
if first # 最初の1回だけ
first = false
case ary[ num ][ 2 ] # 3文字目
when "0" then ary[ num ][ 2 ] = "1"
when "1" then ary[ num ][ 2 ] = "0"
else # 処理なし
end
else # 2回目以降は削除する
ary.delete_at num
end
end
puts ary
text = File.read 'data.txt'
ary = [ ]; index = [ ]
text.each_line.with_index do | line, idx | # 各行・添字
line.chomp! # 末尾の改行を削除する
ary.push line # 各行を配列に入れる
# 先頭文字列が、b= なら、添字を配列に入れる
index.push idx if line.start_with? 'b='
end
return if index.empty? # 空配列なら処理なし
first = true # 最初の1回だけ処理する
index.reverse!.each do | num | # 後ろから削除するために、反転する
if first # 最初の1回だけ
first = false
case ary[ num ][ 2 ] # 3文字目
when "0" then ary[ num ][ 2 ] = "1"
when "1" then ary[ num ][ 2 ] = "0"
else # 処理なし
end
else # 2回目以降は削除する
ary.delete_at num
end
end
puts ary
628デフォルトの名無しさん (ワッチョイ e764-66c6)
2018/10/15(月) 00:34:33.53ID:FbFcpKzK0 Rubyもいいけど、こういう小規模な操作にはシェルスクリプトとかが適してる気がする。
629デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/15(月) 02:17:02.27ID:Obfj9PeS0 >>612の内容だけど、誰も聞かないのであえて聞くけど
b=以外は何も加工せずに複数あればそのまま出力で良いのか?
その場合、ソートは=の右側の数値順にするのか、文字コード順にするのかか
データによっては、a=、c=、d=の行が多数出力される中でb=の行だけ1行になる
ってことで良いのかな?
b=以外は何も加工せずに複数あればそのまま出力で良いのか?
その場合、ソートは=の右側の数値順にするのか、文字コード順にするのかか
データによっては、a=、c=、d=の行が多数出力される中でb=の行だけ1行になる
ってことで良いのかな?
630デフォルトの名無しさん (ワッチョイ 07e0-SmB1)
2018/10/15(月) 03:03:29.36ID:E6pr56BO0 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
631デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/15(月) 23:43:48.26ID:KnJWry7m0 @ [出力A] a=とc=を抽出(使うコマンド:grep)
A [出力B] b=0の1〜末尾-1行を抽出 (使うコマンド:grep|head)
B [出力C] b=1の1〜末尾-1行を抽出 (使うコマンド:grep|head)
C [出力D] b=0の末尾行を抽出し置換 (使うコマンド:grep|tail|sed)
D [出力E] b=1の末尾行を抽出し置換 (使うコマンド:grep|tail|sed)
E [出力F] [出力B]、[出力E]、[出力C]、[出力D]コンカチネーションしユニークにする (使うコマンド:cat|uniq)
F 出力結果 [出力A]と[出力F]をコンカチネーションしソート(使うコマンド:cat|sort)
とりあえずコレでいけるハズ
あとはがんばりなさい
A [出力B] b=0の1〜末尾-1行を抽出 (使うコマンド:grep|head)
B [出力C] b=1の1〜末尾-1行を抽出 (使うコマンド:grep|head)
C [出力D] b=0の末尾行を抽出し置換 (使うコマンド:grep|tail|sed)
D [出力E] b=1の末尾行を抽出し置換 (使うコマンド:grep|tail|sed)
E [出力F] [出力B]、[出力E]、[出力C]、[出力D]コンカチネーションしユニークにする (使うコマンド:cat|uniq)
F 出力結果 [出力A]と[出力F]をコンカチネーションしソート(使うコマンド:cat|sort)
とりあえずコレでいけるハズ
あとはがんばりなさい
632デフォルトの名無しさん (ワッチョイ c723-M9VF)
2018/10/15(月) 23:53:21.52ID:9a9m7auH0 sedだけでやってみてくれや
633デフォルトの名無しさん (ワッチョイ e780-gma9)
2018/10/15(月) 23:59:03.51ID:KnJWry7m0 だけでやるとはオレは一言もいってない
使うコマンドを限定した覚えはない
使うコマンドを限定した覚えはない
634612 (ワイモマー MMff-ytAd)
2018/10/16(火) 00:22:11.79ID:NB8XYwuTM ソートはa,b,c...順です
b=以外は重複を許可します(ソート後の出現順は考慮しなくてよい)
(処理例
入力データ
c=0
a=1
b=1
c=1
a=0
b=0
出力データ
a=1
a=0
b=1
c=0
c=1
b=以外は重複を許可します(ソート後の出現順は考慮しなくてよい)
(処理例
入力データ
c=0
a=1
b=1
c=1
a=0
b=0
出力データ
a=1
a=0
b=1
c=0
c=1
635デフォルトの名無しさん (アウアウエー Sa9f-M9VF)
2018/10/16(火) 00:40:38.52ID:xERlP6Woa チューリングマシンならなんでもできて当たり前なんや
636デフォルトの名無しさん (ワッチョイ e764-66c6)
2018/10/16(火) 00:47:20.35ID:HI3tJEA90 Cのプリプロセッサも計算完備だしな。誰かがcppでフィボナッチ数列出力してたな そういや
637デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/16(火) 00:55:44.02ID:gETK/lfa0 こんなんではどうかな
sed -e ":l; N; s/\nb=[01]\n/\n/1; $p; b l" 01.txt | sed -e "/b=1/{;s/b=1/b=x0/;};/b=0/{;s/b=0/b=x1/;};/b=x/{;s/x//;}"
sed -e ":l; N; s/\nb=[01]\n/\n/1; $p; b l" 01.txt | sed -e "/b=1/{;s/b=1/b=x0/;};/b=0/{;s/b=0/b=x1/;};/b=x/{;s/x//;}"
638デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/16(火) 01:01:42.59ID:gETK/lfa0 bが1行しかないとうまく行かないな
ちょっと手直し
sed -e ":l; N; /b=.*b=/{;s/\nb=[01]\n/\n/1;}; $p; b l" 01.txt | sed -e "/b=1/{;s/b=1/b=x0/;};/b=0/{;s/b=0/b=x1/;};/b=x/{;s/x//;}"
並び替えはsortでやってください
ちょっと手直し
sed -e ":l; N; /b=.*b=/{;s/\nb=[01]\n/\n/1;}; $p; b l" 01.txt | sed -e "/b=1/{;s/b=1/b=x0/;};/b=0/{;s/b=0/b=x1/;};/b=x/{;s/x//;}"
並び替えはsortでやってください
639デフォルトの名無しさん (ワッチョイ e764-66c6)
2018/10/16(火) 01:20:14.73ID:HI3tJEA90 もはやすごいのかどうかも分からんが すごいw
640デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/16(火) 01:33:16.00ID:gETK/lfa0 大したことはしてませんw
前半のスクリプトで最終行以外のb=の行を削除し、
後半のスクリプトで置き換えをしてます
前半のスクリプトで最終行以外のb=の行を削除し、
後半のスクリプトで置き換えをしてます
641デフォルトの名無しさん (ワッチョイ bfd5-KnhR)
2018/10/16(火) 07:39:45.98ID:7taE2kBh0 つかさ、丸投げに答えてやる必要も無いだろ。
ただの一行もコード書いてないだろこいつ。
ただの一行もコード書いてないだろこいつ。
642デフォルトの名無しさん (ワッチョイ 6735-4Hut)
2018/10/16(火) 07:59:23.00ID:ips5MdhR0 622じゃだめなんか?
cat <file> | awk -F= '{if($1=="b") b=$2; else print;} END{printf("b=%d\n", xor(b, 1))}' | sort
cat <file> | awk -F= '{if($1=="b") b=$2; else print;} END{printf("b=%d\n", xor(b, 1))}' | sort
643デフォルトの名無しさん (アウアウカー Sa7b-GU/K)
2018/10/16(火) 09:23:21.39ID:HrwRMilta いーんじゃない?
644デフォルトの名無しさん (ワッチョイ df7c-4Hut)
2018/10/16(火) 10:41:54.09ID:kKW6G61E0 >>641
確かにそんな感じしてきてるな
確かにそんな感じしてきてるな
645デフォルトの名無しさん (アウアウカー Sa7b-GU/K)
2018/10/16(火) 13:03:31.45ID:0QUQFWONa てか、Cのスレで質問者もCでどうやるか聞いてるのに誰もCで答えてないw
ま、Cで書く気が失せる問題ではあるが。
ま、Cで書く気が失せる問題ではあるが。
646デフォルトの名無しさん (ワイモマー MMff-ytAd)
2018/10/16(火) 13:28:42.21ID:iuFXWAmsM 頭の体操にはなったろ
スレを活性化するためには呼び水って必要なんだと実感
スレを活性化するためには呼び水って必要なんだと実感
647デフォルトの名無しさん (ワッチョイ 078a-oHS3)
2018/10/16(火) 13:38:03.74ID:dIjk/xku0 C言語でやるとしたら
b=で始まる行以外は適当な一時ファイルに出力し
b=で始まる行だけはメモリー上に格納しておく
b=行が出現する度に、あたらしい行データでメモリー上を更新する
EOFまで処理したら、一時ファイルとメモリー上のデータをマージする
その際にb=の値を所定の値に置換する
順番は後にソートする前提なので適当で構わない
ソートは外部コマンドでやらせて良いだろうね
b=で始まる行以外は適当な一時ファイルに出力し
b=で始まる行だけはメモリー上に格納しておく
b=行が出現する度に、あたらしい行データでメモリー上を更新する
EOFまで処理したら、一時ファイルとメモリー上のデータをマージする
その際にb=の値を所定の値に置換する
順番は後にソートする前提なので適当で構わない
ソートは外部コマンドでやらせて良いだろうね
648デフォルトの名無しさん (ワッチョイ c708-4Hut)
2018/10/16(火) 17:27:49.92ID:5Df0UEAr0649デフォルトの名無しさん (アウアウカー Sa7b-GU/K)
2018/10/16(火) 17:35:52.31ID:HrwRMilta >>648
おお。上の方過ぎて気づかなかった。
おお。上の方過ぎて気づかなかった。
650デフォルトの名無しさん (ワイモマー MMff-ytAd)
2018/10/16(火) 21:08:20.36ID:iuFXWAmsM お前らがほどよく食いつきそうな質問考えるのも大変なんだぞ
651デフォルトの名無しさん (ワッチョイ 674f-gma9)
2018/10/16(火) 21:46:58.32ID:Fb63Sgww0 >>650
死ね
死ね
652デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/16(火) 22:04:41.56ID:gETK/lfa0 流石に591はネタとしか思えない
というか、酷すぎだろう
というか、酷すぎだろう
653デフォルトの名無しさん (ワッチョイ e764-66c6)
2018/10/16(火) 23:06:58.82ID:HI3tJEA90 C99時代のhello worldプログラムを考えてみた。
#include <stdio.h>
#include <stdlib.h>
static inline void
print_hello(void)
{
puts("Hello, C!");
}
int
main(void)
{
print_hello();
exit(EXIT_SUCCESS);
}
exit()関数を使ったり、main()関数の中に直に処理を書かないとか色々。
#include <stdio.h>
#include <stdlib.h>
static inline void
print_hello(void)
{
puts("Hello, C!");
}
int
main(void)
{
print_hello();
exit(EXIT_SUCCESS);
}
exit()関数を使ったり、main()関数の中に直に処理を書かないとか色々。
654デフォルトの名無しさん (ワッチョイ bf9f-pYQO)
2018/10/16(火) 23:31:05.44ID:ZKPc2SIw0 なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
655デフォルトの名無しさん (ワッチョイ bf9f-pYQO)
2018/10/16(火) 23:35:18.29ID:ZKPc2SIw0656デフォルトの名無しさん (ワッチョイ e764-66c6)
2018/10/16(火) 23:48:35.20ID:HI3tJEA90 >>655
c99 -O2 -Wall -Werror -Wextra hello.c -o hello
これで無警告だった。
c99はGNU/Linuxだとgcc -std=c99を実行してる。
icc -std=c99 -O2 -Wall -Werror -Wextra hello.c -o hello
でも成功。
GNUのコンパイラでもIntelのコンパイラでもちゃんと処理できるのでいいんじゃないかなぁ。
c99 -O2 -Wall -Werror -Wextra hello.c -o hello
これで無警告だった。
c99はGNU/Linuxだとgcc -std=c99を実行してる。
icc -std=c99 -O2 -Wall -Werror -Wextra hello.c -o hello
でも成功。
GNUのコンパイラでもIntelのコンパイラでもちゃんと処理できるのでいいんじゃないかなぁ。
657デフォルトの名無しさん (ワッチョイ bf9f-pYQO)
2018/10/17(水) 01:16:05.15ID:GVzdQn3+0 そうだったか。
658デフォルトの名無しさん (ワッチョイ 27b3-LG9r)
2018/10/17(水) 01:41:12.15ID:aiP21AAI0 main に限り 戻り型int としながらも return で値を明示的に返さない場合
暗に return 0; とするってなかった? (653 で exit() 無しでもセーフ)
暗に return 0; とするってなかった? (653 で exit() 無しでもセーフ)
659デフォルトの名無しさん (ワッチョイ c7e3-Zu1O)
2018/10/17(水) 01:48:50.18ID:aAn3UH6A0 c99から(とc++も)main()は特別扱いで省略時はreturn 0;と扱われる
とググったらでてきた
なんでmain()だけ?どうせなら関数全てそうしちゃえばいいのに、と思わなくもない
とググったらでてきた
なんでmain()だけ?どうせなら関数全てそうしちゃえばいいのに、と思わなくもない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「やっぱり顔採用かよ…」就活生を襲う“見えないルッキズム”の現実 [七波羅探題★]
- カードじゃなくて「紙」が活躍中…健康保険の「資格確認書」 大きすぎて困惑する人も [蚤の市★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★9 [ぐれ★]
- 「5人が抱き合う遺体発見」香港高層火災、150人安否不明 警察はボランティア警戒 [蚤の市★]
- 【野球】菅野智之 WBC出場熱望 取り戻したい8年前の“忘れ物” 36歳全力「ラストチャンス」 現在はFA「無職」 [ぐれ★]
- ガザの死者7万人超える 停戦後も止まらないイスラエル軍の攻撃 [蚤の市★]
- 【高市悲報】冬のボーナス、民42万、公77万wwwww [246620176]
- 【悲報】東京都民さん、通勤に50分もかけてることが判明して炎上wwwwww「地方は車で10分で着くのに人生の1割が通勤時間ってさ [483447288]
- トリッカルもちもちほっぺ大作戦やろうぜ
- よーし!独り身おじさん張り切ってお洗濯しちゃうぞ~♪
- 日中川崎駅から電車に乗ってくる男の特徴3選
- ミュージシャン「こんなバカが国のトップなの」→「馬鹿と言ったのは稚拙だった。中国政府を擁護する意図はない」と釈明 [313077826]
