2017-01-06 6 views
3

私はプログラムを起動するたびに、不要なprintf()関数を保存し、入力ファイル(.txt)にあるデータをエコーし​​ます。コマンドリダイレクトを使用するsystem()関数を使用して処理しようとしています。 。秘密のパスワードはPancratius、 アンティオコスの子孫のクレジットカードを保護するために選ばれたsystem()は入力ファイルからCMDにデータをエコーできますか?

:私はエコーしようとしている https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true

データは、イントロやルールのセットです。 あなたの使命は、彼の秘密のパスワードを明らかにしてPancratiusを停止することです。

次のようにルールがある:数:各では
1.あなたは、すべてあなたがパスワードHITS約2つのヒントを受け取ります推測した後、秘密のパスワード(4つの明確な数字)
2を推測しよう丸めます正確に正しいと思われるあなたの推測の数字。
MISSES:パスワードは に属していますが、誤って配置されていたと思われる数字の桁数です。

これは可能ですか?もしそうなら、どちらのリダイレクトコマンドを使うべきですか? それは何かのようになります

system("program.exe < input.txt") 


ありがとうございます。
EDIT:

私は本当に、単一のprintf()とその中のテキスト全体を使用してなど、「\ n」を使用するか、(上述のように)各センテンスなどのためのprintfのロット()関数を使用しないようにしたいです

+1

Ick - そのテキストを単一の文字列定数に入れて、それを表示するprintf呼び出しを1つ作るだけではどうですか? –

+0

Windowsコンソールでは、指示を印刷してバッチファイルからプログラムを起動することができます。最初の行には '@type input.txt'の2行目の' @myprogram'が2行あります。他のシステムにも同等の機能があると確信しています。 –

答えて

1

まず、printf()の代わりにsystem()を使用して、printf()を避けることをお勧めします。ファイルから実際に読みたい場合は、read this

あなたがprintfにしたくない理由は、これがある場合:

は、私は本当に多くを単一のprintf()とその中のテキスト全体を使用してなど、「\ n」を使用して、または使用しないようにしたいです文章ごとにprintf()関数(上記のように)を使用します。

これをチェックしたいと思うかもしれません。 printfはまったく同じようにコードの行を完全に長くすることなく可能です。

printf(
    "A secret password was chosen to protect the credit card of Pancratius, " 
    "the descendant of Antiochus. Your mission is to stop Pancratius by " 
    "revealing his secret password. \n" 
    "The rules are as follows: \n" 
    "1. In each round you try to guess the secret password (4 distinct digits) \n" 
    "2. After every guess you'll receive two hints about the password \n" 
    "HITS: The number of digits in your guess which were exactly right. \n" 
    "MISSES: The number of digits in your guess which belongs to the " 
    "password but were miss-placed.\n"); 

それでもsystem()を主張した場合、あなたはこのようにそれを行うことができます。これにより

system("cmd.exe /c type yourInput.txt"); 

、私はあなたに(ファイルが見つからない、間違ったカレントディレクトリのように)エラー処理の幸運を願っています。

関連する問題