- 締切済み
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以外の)関数を探す などの解決法があると思いますが、どちらでもかまいません。 ご存知の方、よろしくお願いします。 情報が不足していましたら、どのような情報が必要かもお教えください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Tristia
- ベストアンサー率0% (0/0)
お手軽に~ String^ saki; char moto[32]; sprintf( moto, "%s", saki ); エラー処理考えてませんが・・・ーー;
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
System.IO File.Open http://msdn2.microsoft.com/ja-jp/library/b9skfh7s.aspx
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
System::String^ → char* 下記URL参照
お礼
ご回答ありがとうございました。 この方法を使って、プログラムを完成させることができました。 ヘルプやネットはチェックしたつもりだったのですが、探し方が悪かったみたいです。 ありがとうございました。
お礼
ご回答ありがとうございました。 この方法も試みたのですが、数値を出力することが目的であるため、文字列の変換が面倒になってしまい、今回はNo.1さんの方法を利用することにしました。 Stirng型の文字列をそのまま出力する際に利用してみようと思います。 ありがとうございました。