Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将多个文件输出/输入到桌面_C++_Arrays_String_Struct - Fatal编程技术网

C++ 将多个文件输出/输入到桌面

C++ 将多个文件输出/输入到桌面,c++,arrays,string,struct,C++,Arrays,String,Struct,正在编写一些代码,将(输出/输入)5个不同的文件放到我的桌面上。最后,得到了一条错误消息,即“error:C2109:需要数组或指针类型的下标”。它与myfile.open一起使用;我试过->接线员。如果这是我在尝试将字符串转换为字符并出现警告时假设要做的事情,则不完全是如何将其转换为数组。有人能告诉我如何修改代码来纠正这个错误吗?我对C++和编程比较陌生,只有几个月。 #include <iostream> #include <fstream> using names

正在编写一些代码,将(输出/输入)5个不同的文件放到我的桌面上。最后,得到了一条错误消息,即“error:C2109:需要数组或指针类型的下标”。它与myfile.open一起使用;我试过->接线员。如果这是我在尝试将字符串转换为字符并出现警告时假设要做的事情,则不完全是如何将其转换为数组。有人能告诉我如何修改代码来纠正这个错误吗?我对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;

}
#包括
#包括
使用名称空间std;
结构比萨饼{
字符串文件名[9];
};
int main()
{
int i;
字符文件名;
pizza greg={“file1.doc”、“file2.doc”、“file3.doc”、“file4.doc”、“file5.doc”};
库特
文件名
不是数组。即使是数组,也必须将其设置为字符串数组或二维字符数组,才能执行此处的操作

您可能打算访问
greg
中的字段

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

循环应该是这样的:

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";
    }
}
const char*path=“/Desktop/Libraries/Documents”;
对于(int i=0;i<5;++i)
{
std::字符串名(path+greg.FILENAMES[i]);
std::ofstreammyfile(name.c_str());
如果(我的文件){

myfile删除这一行:
char FILENAMES;
请注意,程序不会执行您希望它执行的操作,但是:如果要将文件放置到特定目录中,则需要构造一个由路径和文件名组成的文件名。采用文件名的构造函数的作用与我使用的默认构造文件大致相同然后是
open()
ed。你是说
greg[i]
也许?按照迪特玛说的做,然后使用
greg.FILENAMES[i]
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";
    }
}