输出/输入多个文件到桌面

时间:2013-09-05 23:29:00

标签: c++ arrays string struct

处理一些将(输出/输入)5个不同文件放在桌面上的代码。最后,将其归结为一个错误消息,即“错误< 23>:C2109:下标需要数组或指针类型”。它与myfile.open;我试过了 - >运营商。不完全是如何将它变成一个数组,如果这是我想要做的,因为我已经尝试将字符串变成char并发出警告。任何人都可以告诉我如何修改我的代码来纠正这个问题?我对C ++和编程比较陌生,只有几个月。

#include <iostream>
#include <fstream>

using namespace std;

struct pizza{
string FILENAMES[9];
};

int main ()
{

int i;
char FILENAMES;

pizza greg = {"file1.doc", "file2.doc", "file3.doc", "file4.doc", "file5.doc"};

  cout << "Input is invalid.  Program will end. " << "\n" ;
for (i = 0; i < 5; i++)
{
const char *path="/Desktop/Libraries/Documents" ;
    ofstream myfile(path);
    myfile.open (FILENAMES[i]) ;
    myfile << "How you like math?\n" ;
    myfile.close();
};

return 0;

}

您的建议有很多帮助,我的程序现已启动并运行。 (没有双关语,哈哈。)

2 个答案:

答案 0 :(得分:2)

循环应该看起来像这样:

const char *path="/Desktop/Libraries/Documents";
for (int i = 0; i < 5; ++i)
{
    std::string name(path + greg.FILENAMES[i]);
    std::ofstream myfile(name.c_str());
    if (myfile) {
        myfile << "How you like math?\n" ;
    }
    else {
        std::cerr << "ERROR: failed to open '" << name << "' for writing\n";
    }
}

答案 1 :(得分:0)

char FILENAMES;

FILENAMES不是数组。即使它是,你将不得不使它成为一个字符串数组或二维字符数组来做你想要的。

您可能打算访问greg内的字段。

myfile.open (greg.FILENAMES[i]);