-PR-
kitakazetotaiyou

windows c++ でsystem関数を使い任意の実行ファイルを動かそうとしてもうまくいきません。
エラーはcharからintにイニシャライズできません
となります。また実行ファイルにスペースがあったら不味いのでしょうか。

#include <stdio.h>
#include <stdlib.h>

int main (void)
{
int=system("C:/Documents and Settings/shun/My Documents/aaa/project abc1/Debug/project abc1.exe");

return 0;
}
  • 回答数5
  • 気になる数0

Aみんなの回答(全5件)

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

  • 2006-02-14 21:18:42
  • 回答No.4
int の扱いは、既に回答があるとおりです。
また、system() 関数は、引数を単純に cmd.exe に渡すだけでして、スペースはまずいです。このばあい、" でくくる必要があります。また、Windows だと、ディレクトリの区切りが / であるのもまずいでしょう。
(純粋にファイルを扱う場合は、/ も使えます)

system("\"C:\\Documents and Settings\\shun\\My Documents\\aaa\\project abc1\\Debug\\project abc1.exe\"");

です。
  • ありがとう数0
-PR-
-PR-

その他の回答 (全4件)

  • 2006-02-14 20:57:45
  • 回答No.1
少なくとも、 > int=system("... ではダメです。 宣言したいのなら、オブジェクト名を書いてください。 ...続きを読む
少なくとも、

> int=system("...

ではダメです。
宣言したいのなら、オブジェクト名を書いてください。
お礼コメント
ご指摘ありがとうございます。
int を消して
system("C:/Documents and Settings/shun/My Documents/aaa/project abc1/Debug/project abc1.exe")
のみで実行したところコマンドプロンプトで
'C:/Documents' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
とでてしまい、実行されません。これはどうしてなのでしょうか?
投稿日時 - 2006-02-14 21:13:00
  • ありがとう数0
  • 2006-02-14 21:02:27
  • 回答No.2
とりあえず"int="になってるのは確実に文法違反。"int"は予約語だから変数名に使えないし、そもそも宣言されてないし。 値を受け取っても使わないなら素直に破棄したらどうですか。 あえて受け取りたいなら"int=system..."でなく"int tmp=system..."といったように書くべき。
とりあえず"int="になってるのは確実に文法違反。"int"は予約語だから変数名に使えないし、そもそも宣言されてないし。

値を受け取っても使わないなら素直に破棄したらどうですか。
あえて受け取りたいなら"int=system..."でなく"int tmp=system..."といったように書くべき。
  • ありがとう数0
  • 2006-02-14 21:17:44
  • 回答No.3
その""で囲まれた部分を実際にコマンドプロンプトで入れてみよう 多分正しく動かないから。 で、どうすれば動くか工夫しよう。 それから、プログラム上で再現しよう。
その""で囲まれた部分を実際にコマンドプロンプトで入れてみよう
多分正しく動かないから。
で、どうすれば動くか工夫しよう。
それから、プログラム上で再現しよう。
  • ありがとう数0
  • 2006-02-14 23:02:02
  • 回答No.5
#4の方が回答されている通り、おそらく二重引用符で括る必要があると思います。(十中八九間違いないですが、私が知らない処理系の動作まではわかりませんので...) ディレクトリの区切りの / に関しては、Windowsであっても、CygwinとかならそれでOKです。 system関数の動作は、完全に処理系に依存しますので、具体的にどんな処理系を使っているかを書きましょう。 ...続きを読む
#4の方が回答されている通り、おそらく二重引用符で括る必要があると思います。(十中八九間違いないですが、私が知らない処理系の動作まではわかりませんので...)

ディレクトリの区切りの / に関しては、Windowsであっても、CygwinとかならそれでOKです。

system関数の動作は、完全に処理系に依存しますので、具体的にどんな処理系を使っているかを書きましょう。
お礼コメント
皆様本当にありがとうございます。
おかげさまで助かりました。
投稿日時 - 2006-02-17 01:44:35
  • ありがとう数0
  • 回答数5
  • 気になる数0
  • ありがとう数3
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください
  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

関連するQ&A

-PR-
-PR-

その他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する
-PR-
-PR-
-PR-

特集


自宅でもできるシンプルケアを教えます!

-PR-

ピックアップ

-PR-
ページ先頭へ