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