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:XSTNMnDwa574デフォルトの名無しさん (ワッチョイ 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()だけ?どうせなら関数全てそうしちゃえばいいのに、と思わなくもない
660デフォルトの名無しさん (ワッチョイ bf9f-pYQO)
2018/10/17(水) 02:29:49.55ID:GVzdQn3+0 なんと。そうだったのか。
661デフォルトの名無しさん (ワイモマー MMff-ytAd)
2018/10/17(水) 03:22:55.94ID:FoS95tj1M >>659
「書かないこと」が一命令と等価ってどうよ?
「書かないこと」が一命令と等価ってどうよ?
662デフォルトの名無しさん (ワッチョイ 4723-KSPj)
2018/10/17(水) 03:32:50.43ID:4awkQadJ0 不定の戻り値なんて殆ど使いもんにならんから
戻り値がスカラー型ならコストも低いし 0 返してる扱いでいい気がする
戻り値がスカラー型ならコストも低いし 0 返してる扱いでいい気がする
663デフォルトの名無しさん (ワッチョイ c708-4Hut)
2018/10/17(水) 04:22:55.42ID:Nvagglal0664デフォルトの名無しさん (ドコグロ MMff-EA7j)
2018/10/17(水) 06:39:43.66ID:p0V48QfGM >>662
そんな余計な機能は要らんわ
そんな余計な機能は要らんわ
665デフォルトの名無しさん (ドコグロ MMff-EA7j)
2018/10/17(水) 06:40:15.60ID:p0V48QfGM >>663
お前は何を言ってるんだよ w
お前は何を言ってるんだよ w
666デフォルトの名無しさん (ワッチョイ c708-4Hut)
2018/10/17(水) 07:36:54.39ID:Nvagglal0 >>665
ニホンゴワカリマスカ?
ニホンゴワカリマスカ?
667デフォルトの名無しさん (ワッチョイ 6735-4Hut)
2018/10/17(水) 08:11:38.95ID:zWYuH5Te0 確かSolaris+sunのコンパイラではreturn 0 もexit(0)も書かんかったら$?は不定だったような記憶がある
668デフォルトの名無しさん (ドコグロ MMff-EA7j)
2018/10/17(水) 08:13:06.68ID:p0V48QfGM >>666
iccワカリマスカ?
iccワカリマスカ?
669デフォルトの名無しさん (ワッチョイ c708-4Hut)
2018/10/17(水) 09:26:43.05ID:Nvagglal0 >>668
だから何?
だから何?
670デフォルトの名無しさん (ブーイモ MM0b-SHtH)
2018/10/17(水) 09:31:50.81ID:OPyv/DAJM >>669
日本語わかってないのはお前じゃん
日本語わかってないのはお前じゃん
671デフォルトの名無しさん (ワッチョイ c708-4Hut)
2018/10/17(水) 09:49:25.33ID:Nvagglal0 >>670
頭が馬鹿なお前に言われたかねえぜ
頭が馬鹿なお前に言われたかねえぜ
672デフォルトの名無しさん (ドコグロ MMff-EA7j)
2018/10/17(水) 10:05:24.48ID:p0V48QfGM673デフォルトの名無しさん (ワッチョイ c708-4Hut)
2018/10/17(水) 10:27:25.05ID:Nvagglal0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「やっぱり顔採用かよ…」就活生を襲う“見えないルッキズム”の現実 [七波羅探題★]
- カードじゃなくて「紙」が活躍中…健康保険の「資格確認書」 大きすぎて困惑する人も [蚤の市★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★9 [ぐれ★]
- 「5人が抱き合う遺体発見」香港高層火災、150人安否不明 警察はボランティア警戒 [蚤の市★]
- 【野球】菅野智之 WBC出場熱望 取り戻したい8年前の“忘れ物” 36歳全力「ラストチャンス」 現在はFA「無職」 [ぐれ★]
- ガザの死者7万人超える 停戦後も止まらないイスラエル軍の攻撃 [蚤の市★]
- 【高市悲報】冬のボーナス、民42万、公77万wwwww [246620176]
- 俺「えぇ!次の任務は女子校に女装して潜入!?」←こういうの
- ミュージシャン「こんなバカが国のトップなの」→「馬鹿と言ったのは稚拙だった。中国政府を擁護する意図はない」と釈明 [313077826]
- トリッカルもちもちほっぺ大作戦やろうぜ
- よーし!独り身おじさん張り切ってお洗濯しちゃうぞ~♪
- 日中川崎駅から電車に乗ってくる男の特徴3選
