0

出力ファイルの名前の一部として使用される c++ のメイン関数に特定の変数を使用したいと考えています。コードは次のとおりです。

int main(int argc, char* argv[]) {
fstream f,g;
string s1,s2,name;
name = argv[5];

s1 = name+("_systemvalues.dat");
f.open(s1.c_str(), ios::out);
...
c.close();

たとえば、argv[5] は「test」である必要があります。プログラムはコンパイル中であり、同様に実行されていますが、出力ファイルは生成されません。端末に s1 を表示できますが、それは本来あるべきものですが、出力ファイルは単に生成されません。

4

2 に答える 2

1

writeファイルシステム / ディレクトリを変更するために必要な権限がない可能性があります。

chmod -R 777 mydir

ちなみに、ジョブには std::ofstream を使用できます。ファイルがまだ存在しない場合は、ファイルが作成されます。

   #include <string>
   #include <iostream>
   #include <fstream>  

   /* ... */

   std::string name = "";
   name.append(argv[5]);
   name.append("_systemvalues.dat");

   std::ofstream out(name.c_str());

   out << "text" << std::endl;

   out.close();

   /* ... */
于 2013-08-03T14:54:47.343 に答える
0

わかりました...問題は入力でした。文字「/」はファイル名の一部として使用できません。後から考えると、それは本当に明らかです。

于 2013-08-04T13:10:03.180 に答える