質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

デザイン

プログラミングでのデザインとは、プログラムの構成や、使用の信頼性・持続性・正確性・利便性の目標達成にはどうするのがベストなのか特定の選択を行うことです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

5回答

1949閲覧

UIの設計について

majiponi

総合スコア1720

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

デザイン

プログラミングでのデザインとは、プログラムの構成や、使用の信頼性・持続性・正確性・利便性の目標達成にはどうするのがベストなのか特定の選択を行うことです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

2クリップ

投稿2016/05/26 07:47

趣味でプログラムやっている同人絵師です。
自分で描いたものをPDFにして配布したいと考え、PDFを書き出すコンバータを書こうと思い、着手したのですが、詰まってしまいました。

具体的には、コマンドライン上で動くものを書くのですが、標準入力からコマンドを読み込み標準出力に書き出すようにして、パイプを利用してファイルに出力するか、起動時に入力・出力ファイル名を入力して実現するか迷っています。

どちらにも利点と欠点があると思いますが、どちらがより優れた設計だと思いますか?

初投稿で非常に初歩的な質問で恐縮ですが、どうかご意見・ご指導のほどよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2016/05/26 08:30

PDFを標準出力に書き出す意味あるんですか?
majiponi

2016/05/29 08:13

標準出力への出力の意味を教えてくださった回答をBAとさせていただきました。使うライブラリもファイルへの出力がデフォルトみたいなので、オプションにすることにしました。
guest

回答5

0

「標準入力からコマンドを読み込み標準出力に書き出す」プログラムを作って、「起動時に入力・出力ファイル名を入力して」動くプログラムから呼んだらどうでしょう?

投稿2016/05/26 10:04

cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

PDFコンバーターと言うことはPDFファイルを出力するのですよね。環境はWindowsでしょうか、Macでしょうか。MacならUNIXなので問題ないと思いますが、Windowsだと標準入出力はテキストモードなので、バイナリデータを扱う際は注意が必要です。

私なら、とりあえずパイプでデータを受け渡しするような要求がなければ、基本はファイル指定でファイルに読み書きします。パイプだとプロセス間通信でデータを受け渡すのでなんとなく遅いイメージがあります(今時のマシンならたいしたことないでしょうけど)。

投稿2016/05/26 08:55

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

majiponi

2016/05/26 10:04

環境はWin/DOSです。標準出力をバイナリモードに切り替えるやり方は知っています。パイプ・引数、どちらのやり方も書けるけど、より一般的なのはどちらなのか知りたくて質問した次第です。
catsforepaw

2016/05/26 10:21

そうでしたか。テキストデータならファイル名が指定されたらファイルをオープンし、省略されたら(あるいはオプション指定で)標準入出力に読み書きするというケースが多いように思います。ただ、バイナリデータを標準入出力で読み書きするというのは聞いたことがありません。たとえば、gccはソースコードは標準入力から読ませることもできますが、コンパイル結果はファイルに出力します。
guest

0

ベストアンサー

オプションに応じて挙動の種類を変えるのが良いでのはないかと思います。

bash

1./myconverter image.file --o=output.pdf 2./myconverter image.file > output.pdf

"o"オプションがあればその値のパスに出力し、
なければ、標準出力に流せばいいです。

*ただし、そもそもこういった挙動のコマンドの利点は追記モード(>>)で出力したいことがある場合に多いです。
つまり今回はpdfが出力されるので、バイナリにはあまり意味がないのだと思います。

作成するのに時間を割けないのであれば、コマンド例上側(オプション指定もしくは、第2引数が出力先など)がベターかと思います。

投稿2016/05/26 08:40

mtempa

総合スコア129

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

majiponi

2016/05/26 10:11

標準出力を想定したのは、CGIなどへの転用を考えたときに便利かなと思ったのが理由で、深く考えたわけではないです。どこまで拡張性を持たせた設計にするかも悩み所です。 パイプ処理は追記を想定している、ということは思い至りませんでした。しばらく別の方の意見も聞いてみます。
guest

0

場合によりけり。

in/outが複数になったら標準入出力では足りんですが、
そうでなければどっちでもいけるように実装します。

投稿2016/05/26 07:56

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

その2択でしたら、どちらが優れているという比較は難しいです。
前者は他のコマンドライン・ツールと組み合わせて使う玄人好みと思います。極めれば便利ですが、それほど頻繁に使わない場合は、使い方を覚えきれなくて苦労するような気がします。

投稿2016/05/26 08:02

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問