No.2ベストアンサー
- 回答日時:
0,1がbinaryなのか、characterなのかはっきりしませんが、characterでしたら、下記の通り。
-- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
#include <stdio.h>
int
main(void)
{
int c;
while ((c = getchar()) != EOF) {
printf("%c\n",c);
}
return (0);
}
ありがとうございました。
こちらで作成させて頂きました。
急いでおりましたので、投稿より25分で回答を頂けて、大変助かりました。
No.4
- 回答日時:
bash で:
while read -n 1 ch; do echo $ch; done < infile
普段なら私は sed を使うんだけど, 1行が長すぎるとアウトになる可能性があるのであえて使わず.
No.6
- 回答日時:
ベンチマークをとってみました。
1,000,000文字
0m0.610s C mac_res
0m2.543s awk sakusaker7さん
0m6.538s awk nitorinさん
1m57.389s bash Tacosanさん
100,000文字
0m16.154s sed koko_u_さん
sedは1,000,000文字を入力したところ5分経っても終了せず、100,000で測定を打ち切りました。
sakusaker7さんのawkがすぐ思いつくなら、最適解かもしれません。
思いつかなければ、Cがコンパイルの手間を入れても、圧勝ですね。
ありがとうございました。
『0m0.610s C mac_res』で作成した後、こちらの投稿を見させて頂きました。
こちらの比較により、安心する事が出来ました。ありがとうございました。
No.7
- 回答日時:
ベンチマークの測定環境を書き忘れました。
gcc version 4.2.1 (Debian 4.2.1-3)
700MHz Celeron, 265MB memory
乱数列は、以下のプログラムで発生しました。
-- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]) {
int i,c,n;
if (argc < 1) {
fprintf(stderr, "gen qty\n");
return(1);
}
n = atoi(argv[1]);
srand(time(NULL));
for (i = 0; i < n; i++) {
c = (rand() < RAND_MAX/2) ? '0':'1';
putchar(c);
}
return (0);
}
-- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
sedはそのまま3時間ほど放置しましたが、1,000,000文字を処理できませんでした。
No.8
- 回答日時:
#4 です.
そういえばもとの質問に環境が書いてなかったけど, 勝手に Linux だと思っちゃった.... まあ, 今どきのシステムなら bash か ksh くらい入ってるでしょうから, いいことにしておきます. ただ, これは「シェルで書く」という 1点だけに集中した (一種の) ジョークプログラムなので, #6 のように時間を比較されると勝てません (というか, そもそもジョークなので時間で勝つことは想定外). sed は... バッファオーバーフローしてるかなぁ?
作成中のシェルに組み込みたかったので、シェルでの作成が本命でした。
お恥ずかしいのですが、勉強不足で、bashもkshも知りません。
申し訳ございません。
今後も機会がございましたら、宜しくお願い致します。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- その他(プログラミング・Web制作) 変換のプログラムを教えてください。 6 2023/07/01 09:57
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) エクセルのグラフで式や文字列を無視したい 2 2022/12/14 10:47
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) 列の複数ある空白セルを飛ばして、セルに並べて表示したい 3 2023/02/12 16:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
「指定されたキャストは有効で...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での奇数の和
-
C言語での引数の省略方法
-
【C++】関数ポインタの使い方
-
足して100になるような乱数のア...
-
C言語
-
C言語 エラーの原因がわからな...
-
比較回数と交換回数表示について
-
数字列を3桁ごとにカンマで区切...
-
C言語のサイコロシミュレート
-
acceptをalarmでタイムアウトさ...
-
「{ } で囲むだけ」は正しい?
-
銀行のATMを想定したプログラム
-
未解決の外部シンボル _printf...
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
signal関数の使い方
-
インライン展開されているか確...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語 配列と関数の練習問題
-
複数桁10進数の*桁目だけを抽出...
-
(int *)の意味
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
c言語
-
足して100になるような乱数のア...
-
C言語初心者です、、、お助けく...
-
数字列を3桁ごとにカンマで区切...
-
C言語 エラーの原因がわからな...
-
実数の整数部,小数部の取得
-
課題でつまってます・・・
-
商と剰余を同時に求める(C言語)
-
C言語の配列をC++のvectorに高...
-
std::set<int> で、ある値が何...
おすすめ情報