Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.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++;(文件I/O)_C++_Arrays_File Io - Fatal编程技术网

C++ 将文件输入存储在数组中并输出到另一个文件C++;(文件I/O)

C++ 将文件输入存储在数组中并输出到另一个文件C++;(文件I/O),c++,arrays,file-io,C++,Arrays,File Io,我试图逐行将文件输入读取到数组中,然后逐行将其输出到另一个文件中。我的想法是读取每个单词并将其分配给数组索引,然后立即将该索引中存储的单词输出到输出文件。我不太熟悉使用VisualStudio的调试器或任何调试。我只是试着编译而不出错,但是当使用这段代码时,我得到一个错误: “EndOfFileDemo.exe中0x0119A1C6处引发异常:0xC0000005:访问冲突写入位置0xCCCC 如果有此异常的句柄,程序可以安全地继续“ 它给了我选择:中断、继续或忽略 我希望有人能看看我的代码,发

我试图逐行将文件输入读取到数组中,然后逐行将其输出到另一个文件中。我的想法是读取每个单词并将其分配给数组索引,然后立即将该索引中存储的单词输出到输出文件。我不太熟悉使用VisualStudio的调试器或任何调试。我只是试着编译而不出错,但是当使用这段代码时,我得到一个错误:

“EndOfFileDemo.exe中0x0119A1C6处引发异常:0xC0000005:访问冲突写入位置0xCCCC

如果有此异常的句柄,程序可以安全地继续“

它给了我选择:中断、继续或忽略

我希望有人能看看我的代码,发现我没有看到的逻辑错误,或者我使用了错误的语法错误

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

using namespace std;
using std::string;
using std::ifstream;
using std::ofstream;
using std::cout;

int main( )
{
ifstream fin;
ofstream fout;

fin.open("Programming Assignment 3 Data.txt");
if (fin.fail( ))
{
    cout << "Input file opening failed.\n";
    exit(1);
}

fout.open("newOut.txt");
if (fout.fail( ))
{
    cout << "Output file opening failed.\n";
    exit(1);
}


char next;                // a variable to store each word
fin >> next;

while(fin >> next)         // I've read on several other questions that
    {                     // this is better than: while (! fin.eof())
    string myArray[8];
    myArray[0] = next;
    fout << next << " ";
    int i = 1;
    while(next!='\n')             //read and write until end of line
    {
        fin >> myArray[i];
        fout << myArray[i] << " ";
        i++;
        fin >> next;
    }
    fout << endl;  //output an end of line to begin next output on new line.

    fin >> next;         
}

fin.close();
fout.close();

system("Pause");
return 0;
}
它是医院员工的花名册,每个单词稍后将存储在不同模型类中自己的成员变量中。 例如,第二个条目将存储在具有以下成员变量的类“Doctor”的对象中: 角色 名称 数字 特产

为了索引医生的多个实例,我稍后将为要存储的“医生”类的对象创建一个数组


但我想首先掌握如何正确地输入和存储单个单词(稍后将分配给变量)并将数据输出到文件。

读取未绑定的检查数组(其中迭代次数来自程序外部)是危险的。验证
i
是否不会溢出数组,或者使用自动执行边界检查的数据结构。不幸的是,讲师不允许我使用任何数据结构。为什么不使用getline()函数获取文件的整行内容?顺便说一句,接下来是char?@user3553067
std::string
,内置数组是数据结构。如果他希望您以这种方式使用数组,请询问您的讲师为什么要教您编写不安全的程序。@user3553067您正在填充大小为8的数组,但您的代码没有任何不超过此限制的检查。另外,我认为您应该将整个文件读入数组,而不是在每个字节上读/写(考虑问题的标题)。
h Vito 123
d Michael 234 Heart
n Sonny 456 6
a Luca 567 Business
r Tom 678 Talking Y
j Anthony 789 Maintenance N
d Nicos 891 Bone