• ベストアンサー

リダイレクト指示について2

C言語初心者です。 よろしくお願いします。 以前にも、同じ内容で質問をしたのですが、もう少し詳しく記載したいと思います。 参考書にあるリダイレクト指示というものを行っているのですが、うまくいきません。 以下に、プログラムを記載しておきます。 ----------------------------------------- /* rdtst.c */ #include<stdio.h> int main(void) { char ss[256]; gets(ss); puts(ss); return 0; } --------------------------------------- ------------実行結果-------------------------------------------- C:\cwork>rdtst enter ////通常の実行//// abcde enter /////キーボードからの入力//// abcde ////画面出力///// C:\cwork>rdtst >aa.txt enter //出力先をaa.txtファイルにする// ABCDE enter ////キーボードから入力//// C:\cwork>type aa.txt enter ////aa.txtの内容を見る//// ---------------------------------------------------------------- 以上のような実行結果になって欲しいのですが、うまくいきません。 以上のプログラムは、参考書に記載されていたものです。 ファイルの置いてある場所をちゃんと指定しなければならないのかと思いましたが、行ってもうまくいきません。 visual studio 2005を使用してC言語で行っております。 ソースファイル「rdtst.c」は、「C:\CCC\redirect」の中にあります。 コマンドプロンプトを使用して、「C:\CCC\redirect>rdtst」と入力しても、「'c:\CCC\redirect' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され実行できません。 リダイレクト指示を実行させるには、どのようにしたらよろしいでしょうか? 教えていただければ嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.6

>「C:\CCC\redirect\Debug\redirect」と打てば、gets(ss);とputs(ss);による実行は出来ますが、aa.txtに出力するということは出来ません。 >どのようにすればよいでしょうか? カレントディレクトリが「どのディレクトリになっているか判らない状態」で C:\CCC\redirect\Debug\redirect >aa.txt とやってしまうと「どこか判らないディレクトリにaa.txtを作る」ので「aa.txtが行方不明」になります。 当方の説明にあるように「CDコマンド」で、カレントディレクトリを「C:\CCC\Redirect\Debug」に移動させて下さい。 1. DOSプロンプトを開く。 2. C:\Documents and Settings\ログオンしているユーザー名>_ (「_」は点滅してるカーソル) って表示になっている。そうなってない場合も大丈夫なので気にしない。 3. キーボードから「C」「:」「Enter」と打つ。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: って感じになってる筈です。 4. キーボードから「C」「D」「 」(スペース)「C」「:」「\」「C」「C」「C」「\」「r」「e」「d」「i」「r」「e」「c」「t」「\」「D」「e」「b」「u」「g」「Enter」と打つ。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect\Debug C:\CCC\redirect\Debug>_ (「_」は点滅してるカーソル) って感じになってる筈です。 5. キーボードから「r」「e」「d」「i」「r」「e」「c」「t」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect\Debug C:\CCC\redirect\Debug>redirect _ (「_」は点滅してるカーソル) って感じになってる筈です。 6. キーボードから「a」「b」「c」「d」「e」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect\Debug C:\CCC\redirect\Debug>redirect abcde abcde C:\CCC\redirect>_ (「_」は点滅してるカーソル) って感じになってる筈です。 7. キーボードから「r」「e」「d」「i」「r」「e」「c」「t」「 (スペース)」「>」「a」「a」「.」「t」「x」「t」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect\Debug C:\CCC\redirect\Debug>redirect abcde abcde C:\CCC\redirect\Debug>redirect >aa.txt _ (「_」は点滅してるカーソル) って感じになってる筈です。 8. キーボードから「A」「B」「C」「D」「E」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect\Debug C:\CCC\redirect\Debug>redirect abcde abcde C:\CCC\redirect\Debug>redirect >aa.txt ABCDE C:\CCC\redirect\Debug>_ (「_」は点滅してるカーソル) って感じになってる筈です。 9. キーボードから「t」「y」「p」「e」「 (スペース)」「a」「a」「.」「t」「x」「t」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect\Debug C:\CCC\redirect\Debug>redirect abcde abcde C:\CCC\redirect\Debug>redirect >aa.txt ABCDE C:\CCC\redirect\Debug>type aa.txt ABCDE C:\CCC\redirect>_ (「_」は点滅してるカーソル) って感じになってる筈です。 「typeコマンド」は、typeの後ろに指定したファイルの中身を、画面に表示するコマンドです。 このように「CDコマンドで、実行するプログラムが置いてあるディレクトリに移動してから実行」しないと、リダイレクトしたファイルが「どっか行っちゃう」ので、気を付けましょう。 質問者さんのパソコン、あっちこっちの変なフォルダに「aa.txt」が出来てたりしなければ良いのですが…。

muffler
質問者

お礼

大変大変参考になりましたm(_ _)m CDコマンドによって、ディレクトリの移動してから、実行していかなければならないという事なんですね♪ Debugフォルダに、txtも作成でき、閲覧もできました。 1から10まで細かく教えていただき、本当にありがとうございました。

その他の回答 (5)

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.5

>ソースファイル「rdtst.c」は、「C:\CCC\redirect」の中にあります。 >コマンドプロンプトを使用して、「C:\CCC\redirect>rdtst」と入力しても、「'c:\CCC\redirect' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され実行できません。 ちょっと笑ってしまいました。 参考書に C:\cwork>rdtst enter ////通常の実行//// abcde enter /////キーボードからの入力//// abcde ////画面出力///// と書いてあるのは 1. DOSプロンプトで「C:\cwork>」と表示され、その後ろにカーソルがある。 つまり C:\cwork>_ ←「_」が点滅してるカーソル って表示になっている。 2. キーボードから「rdtst」と打ち込む。 この時点で C:\cwork>rdtst_ ←「_」が点滅してるカーソル になる。 3. キーボードの「Enterキー」を押す。 この時点で C:\cwork>rdtst _ ←「_」が点滅してるカーソル になる。 4. キーボードから「abcde」と打ち込む。 この時点で C:\cwork>rdtst abcde_ ←「_」が点滅してるカーソル になる。 5. キーボードの「Enterキー」を押す。 この時点で C:\cwork>rdtst abcde abcde C:\cwork>_ ←「_」が点滅してるカーソル になる。 と、言う事です。 けっして、キーボードから「C:\cwork>rdtst」と打て、と言ってる訳ではありません。 >コマンドプロンプトを使用して、「C:\CCC\redirect>rdtst」と入力しても、「'c:\CCC\redirect' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され実行できません。 ってことは、キーボードから「C」「:」「\」「C」「C」「C」「\」「r」「e」「d」「i」「r」「e」「c」「t」「>」「r」「d」「t」「s」「t」「Enter」って打ってるって事ですよね。 そうじゃありません。 「C:\CCC\redirect>_」(「_」は点滅してるカーソル)って表示が出ている時に、キーボードから「r」「d」「t」「s」「t」「Enter」って打つんです。 もし、DOSプロンプトを開いた時に C:\Documents and Settings\ログオンしているユーザー名>_ (「_」は点滅してるカーソル) って表示になっていたら 「C」「:」「Enter」 「C」「D」「 」(スペース)「C」「:」「\」「C」「C」「C」「\」「r」「e」「d」「i」「r」「e」「c」「t」「Enter」 って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect C:\CCC\redirect>_ (「_」は点滅してるカーソル) って感じになってる筈です。 こうなったのを確認したら、キーボードから「r」「d」「t」「s」「t」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect C:\CCC\redirect>rdtst _ (「_」は点滅してるカーソル) って感じになってる筈です。 そしたら、キーボードから「a」「b」「c」「d」「e」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect C:\CCC\redirect>rdtst abcde abcde C:\CCC\redirect>_ (「_」は点滅してるカーソル) って感じになってる筈です。 次は、さっき「r」「d」「t」「s」「t」「Enter」って打ったのと同様に「r」「d」「t」「s」「t」「 (スペース)」「>」「a」「a」「.」「t」「x」「t」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect C:\CCC\redirect>rdtst abcde abcde C:\CCC\redirect>rdtst >aa.txt _ (「_」は点滅してるカーソル) って感じになってる筈です。 そしたら、キーボードから「A」「B」「C」「D」「E」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect C:\CCC\redirect>rdtst abcde abcde C:\CCC\redirect>rdtst >aa.txt ABCDE C:\CCC\redirect>_ (「_」は点滅してるカーソル) って感じになってる筈です。 最後に、キーボードから「t」「y」「p」「e」「 (スペース)」「a」「a」「.」「t」「x」「t」「Enter」って打って下さい。 画面が C:\Documents and Settings\ログオンしているユーザー名>C: C:\Documents and Settings\ログオンしているユーザー名>CD C:\CCC\redirect C:\CCC\redirect>rdtst abcde abcde C:\CCC\redirect>rdtst >aa.txt ABCDE C:\CCC\redirect>type aa.txt ABCDE C:\CCC\redirect>_ (「_」は点滅してるカーソル) って感じになってる筈です。 判りましたか? 「DOSプロンプトが勝手に表示しているものまで、真似してキーボードで打ってしまってはいけない」です。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

VisualC++でビルドしたなら実行ファイルはDebugフォルダかReleaseフォルダの中に作成されています。 C:\CCC\redirectフォルダを開いてどちらかのフォルダにrdtst.exeが作成されているのを確認しましょう 確認したらコマンドプロンプトで C:\CCC\redirect\Debug> か C:\CCC\redirect\Release> のどちらかに移動しましょう

muffler
質問者

お礼

Debugの中に「redirect.exe」はあり、「rdsts.exe」はありません。 「C:\CCC\redirect\Debu\redirect」と打てば、gets(ss);とputs(ss);による実行は出来ますが、aa.txtに出力するということは出来ません。 どのようにすればよいでしょうか?

  • arain
  • ベストアンサー率27% (292/1049)
回答No.3

新しい質問を立てるときは、前の質問は閉じて再質問していることを書いてください。 http://okwave.jp/qa4674004.html とりあえずの確認ですが、 >ソースファイル「rdtst.c」は、「C:\CCC\redirect」の中にあります。 >コマンドプロンプトを使用して、「C:\CCC\redirect>rdtst」と入力しても、「'c:\CCC\redirect' は、内部コマンドまたは外部コマンド、 >操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され実行できません。 実行ファイル「redirect.exe」は、フォルダ「C:\CCC\redirect」にありますか? >「C:\CCC\redirect>rdtst」 だと、フォルダ「C:\CCC」に「redirect.exe」が必要なことになりますが。

muffler
質問者

お礼

再質問大変申し訳ありません。 redirect.exeのあるフォルダへ行ったら、コマンドプロンプトで見事実行できました。 本当にありがとうございました。

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.2

>「C:\CCC\redirect>rdtst」と入力しても、 なぜそのように入力しようと思ったのでしょうか? 間違っています。 C:\CCC\redirect\rdtst と入力してください。 >以上のプログラムは、参考書に記載されていたものです。 あまり良い参考書じゃないですね。getsは使ってはいけない関数です。

noname#77845
noname#77845
回答No.1

とりあえず、 ×:C:\CCC\redirect>rdtst ○:C:\CCC\redirect\rdtst と入力して実行する。 その結果が正しかったら C:\CCC\redirect\rdtst > aa.txt に挑戦する。 (パスが通っていないファイルを絶対パスで指定する方法を理解しましょう。)

関連するQ&A

  • リダイレクト指示について

    C言語初心者です。よろしくお願いします。 参考書にあるリダイレクト指示というものを行っているのですが、うまくいきません。 以下に、プログラムを記載しておきます。 ----------------------------------------- /* rdtst.c */ #include<stdio.h> int main(void) { char ss[256]; gets(ss); puts(ss); return 0; } --------------------------------------- ------------実行結果-------------------------------------------- C:\cwork>rdtst enter ////通常の実行//// abcde enter /////キーボードからの入力//// abcde ////画面出力///// C:\cwork>rdtst >aa.txt enter //出力先をaa.txtファイルにする// ABCDE enter ////キーボードから入力//// C:\cwork>type aa.txt enter ////aa.txtの内容を見る//// ---------------------------------------------------------------- 以上のような実行結果になって欲しいのですが、うまくいきません。 ただ、「1行目のC:\~」の文字列が表示されるだけです。 ファイルの置いてある場所をちゃんと指定しなければならないのかと思いましたが、行ってもうまくいきません。 リダイレクト指示を実行させるには、どのようにしたらよろしいでしょうか? 教えていただければ嬉しいです。

  • Windowsコマンドプロンプトのリダイレクトについて

    宜しくお願いします。 Windowsのコマンドプロンプトで、 abcde /? > c:\textname.txt *abcdeはコマンド名 というようにコマンドの使用方法をリダイレクトで ファイルへ出力しようとしましたところ、 コマンドプロンプト上に出力されてしまい、 0バイトのファイルが生成されるだけです。 なぜでしょうか。 また、対処方法はありますでしょうか。 どうぞ宜しくお願い致します。

  • Windowsから直接起動するアプリにリダイレクトを設定するには?

    Windowsから直接起動するアプリにリダイレクトを設定するには? 「ファイル名を指定して実行」から直接アプリを起動し、それにリダイレクトを設定したいのですが、指定したファイルに出力されずに困っています。 例.「ファイル名を指定して実行」→「ipconfig > c:\hoge.txt」を入力= コンソールに出力 コマンドプロンプト上から「ipconfig > c:\hoge.txt」を実行するとhoge.txtに出力されるので、もしかしたらリダイレクト機能はWindowsではなく、コマンドプロンプトが持ってる?と疑っています。 だとしたら、Windowsから直接アプリを起動する場合、リダイレクトは設定できないことになりますが、この認識であっているでしょうか? 環境:Windows XP

  • リダイレクト

    c言語の初心者です。手元の「c言語体当たり学習徹底入門」という本で独学しているとことなのですが、そこの92ページにリダイレクトが出てきます。コマンドプロンプトで プログラム名 < data.txt でプログラムにdataを読み込ませることがができるそうです。やってみると、ソースファイルが立ち上がり、なぜかコンパイルできません。データを読み込んだのでソースファイルのコンパイルは不要なのでしょうか?いづれにせよ結果が表示されないので成功したとはいいがたいです。だれが助言をお願いします。

  • リダイレクトの方法

    たとえば、 http://www.XXX.ne.jp/というサイトがあった場合、 http://www.XXX.ne.jp/abcde.html というようなページがないサイトにアクセスした場合、そのサイトのある特定のページにリダイレクトしたいのですが、いい方法はないでしょうか? できれば、htaccess ファイルを使ったものがいいのですが、 http://www.shtml.jp/htaccess/redirect.html の方法でやってみると、実際にある index.html にアクセスしてもリダイレクトしてしまいます。 なにかいい方法はないでしょうか?

  • コマンド結果のリダイレクト

    UNIXコマンドで「sar」がありますが、 その中のオプション「-o」を使用しないで ファイルにリダイレクトをしたいです。 なお、その際にバックグランドで実行しています。 sarコマンドは長時間動かし途中でリダイレクト結果をviewなどで見たいのですがどうしたらよいでしょうか? ex) sar 5 10000 > log.txt & これだと、sarコマンドが終了しないとlog.txtに出力されません。いつでもviewなどで最新のlog.txtを見たいです

  • Visual studio 2008 のリダイレクトについて

    Visual Studio 2008を使ってC言語のプログラミングをしています C言語のプログラムの実行結果を別ファイルに リダイレクトしようとしたのですが プロジェクトのプロパティ→構成プロパティ→デバッグ コマンド引数の箇所に >output.txt と打ったのですが、実行結果はCtrl+F5でしか出力されません Visual studio 2005だとF5のデバッグだけでも出力されていたのですが Ctrl+F5だとキーをわざわざおさないといけないので非常に不憫です。 2008ですと、2005と違ってどこかプロパティの設定を いじらないといけない箇所があるのでしょうか? お分かり頂ける方、宜しくお願いします

  • コマンドプロンプトのリダイレクト方法

    コマンドプロンプトで、フォルダ名を一旦 foldername.txt に書き出してから、 リダイレクトでコマンドの入力を、ファイルから読み取る、という事をしたいのですがうまくいきません。 dir /b > C:\\foldername.txt で、フォルダ名を取り出してから、(foldername.txt には MAY-07 と記述されます) cd < C:\\foldername.txt > C:\\aaa.txt (cd MAY-07、と記入されたaaa.txtを作成したい) ですが、実際に実行してみると、 cd 0<C:\\foldername.txt 1 > C:\\aaa.txt となってしまいます。。 (aaa.txtには、cd(空白) としか記入されていません) どうしてでしょうか?(´Д⊂ ちょっと質問の意図が分かりづらいでしょうか…; 申し訳ありません; お分かりになる方がいらっしゃいましたら、どうかご教授お願い致します!

  • シェルでリダイレクトができない

    bashを使っているのですが、 シェルの中で、 ./実行ファイル hoge1 hoge2 > hoge.txt という感じで二つの引数を使って動作する実行ファイルの標準出力を、リダイレクトしたいです。 ですが、テキストに出力をリダイレクトできません。 こんな感じの書き方でリダイレクトできないもんなんでしょうか? 教えて欲しいです。 よろしくお願いします。

  • 301リダイレクトがわからない

    このたびサイトを移転することになりました。 古い方のサーバは8月いっぱいで閉鎖してしまいます。 検索したところ、301リダイレクト機能を使うと古いページにアクセスするとそのまま新しいページに自動転送できるようになるそうです。 そして自分でファイルhtaccess.txtを作って、古い方のサーバにアップしたのですがうまくいきません 以下は、私が作ったhtaccess.txtの内容です (http://www.○○-○.net/は私の新しいサイトのURLです) (「○▲○」は私のサイト名です。名前に変更はありません) ______________ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html;charset=Shift_JIS"> <meta name="generator" content="Adobe GoLive 6"> <p>Redirect permanent /○▲○/http://www.○○-○.net/</p> <p>redirect 301 /index.html http://www.○○-○.net/</p> <title>htaccess.txt</title> </head> <body bgcolor="#ffffff"> </body> </html> __________________ どうしたらいいのでしょうか どなたか正しい301リダイレクトのファイルの書き方を教えて下さい よろしくお願いします 期間が8月いっぱいなので相当あせってます

専門家に質問してみよう