• 締切済み

C++/CLIにて、System.String^型からChar*への変換。または、fopen_s以外のファイル出力方法

現在、VisualC++2005の「空のCRLプロジェクト」からコツコツプログラムを組んでいます。 ファイルを読み込む→処理→他のファイルに結果を出力という単純なプログラムなのですが、入力、出力ファイル名を共に、コンソール画面から入力するというところで困っています。 コンソールから読み込みについては、バッチの利用も考えてmain関数で、  int main(array<String^>^ (変数名)) とし、String^型でファイル名を読み込みました。 しかし、実際にファイルを呼び出す際には、  fopen_s(&fp, (char*型ファイル名) ,"a"); を利用するため、char*型に変換しなければなりません。 ToCharArrayを試しましたが、 'cli::array<Type,dimension> ^' から 'char *' に変換できません。 とエラーが出ますし(過去の質問にもあります)、キャストも同様です。 ファイル名の読み込みをchar*にもしてみましたが、String^にするようにとのエラーが出ました。 何か良い解決方法はないでしょうか。 (1)String^型からChar*へ変換する (2)String^型でファイルを開く(fopen_s以外の)関数を探す などの解決法があると思いますが、どちらでもかまいません。 ご存知の方、よろしくお願いします。 情報が不足していましたら、どのような情報が必要かもお教えください。 よろしくお願いします。

みんなの回答

  • Tristia
  • ベストアンサー率0% (0/0)
回答No.3

お手軽に~ String^ saki; char moto[32]; sprintf( moto, "%s", saki ); エラー処理考えてませんが・・・ーー;

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2
center
質問者

お礼

ご回答ありがとうございました。 この方法も試みたのですが、数値を出力することが目的であるため、文字列の変換が面倒になってしまい、今回はNo.1さんの方法を利用することにしました。 Stirng型の文字列をそのまま出力する際に利用してみようと思います。 ありがとうございました。

回答No.1

System::String^ → char* 下記URL参照

参考URL:
http://msdn2.microsoft.com/ja-jp/library/d1ae6tz5.aspx
center
質問者

お礼

ご回答ありがとうございました。 この方法を使って、プログラムを完成させることができました。 ヘルプやネットはチェックしたつもりだったのですが、探し方が悪かったみたいです。 ありがとうございました。

関連するQ&A