c++ - 使用 .txt 文件将数据集输入到 C++ 中的向量(可能不止一个数据集)中
问题描述
我正在为一起使用 JNI 和 C++ 的学校开发这个项目。给了我 java 代码,它让用户为有关动物园动物的数据集输入 6 个不同的输入。最后它会询问您是否要添加另一个。
如果是,输入将在第二行,一旦选择 N,它将写入 .txt 文件,格式为:
001235 阿丽塔哺乳狼 0 0
001234 鲍勃哺乳动物狼 0 0
(请注意两个数据之间没有空行)
下面的代码是我编写的用于打开文件并将输入转换为向量的代码,该向量可成功用于一行用户输入。我遇到了一个问题,即如何为用户可以输入的潜在未知数量的向量逻辑地进行这项工作。
void LoadDataFromFile()
{
/*
TODO: Write proper code to load data from input file (generated using JNI) into vector/array.
*/
vector<string> zooVector(6);
int count = 0;
unsigned int i;
ifstream inputFile;
inputFile.open("zoodata.txt");
if (!inputFile) {
cerr << "Unable to open file zoodata.txt";
exit(1); // call system to stop
}
while(count < 6) {
for(i = 0; i < 6; ++i) {
inputFile >> zooVector.at(i);
count += 1;
}
}
最终目标是将其写入内存以进行多类继承,但我试图让输入为向量工作。
解决方案
对于 ; 的不同字段,您不需要字符串向量animal
。你需要一个struct
.
那么你需要一个向量struct
来代表一个动物园;当您从文件中读取更多行时,它会动态增长。
推荐阅读
- c++ - 由于 NULL 指针,COutputList“隐藏”中的 MFC MDI OutputWnd.cpp 上下文弹出窗口不起作用
- r-exams - 为什么 while (is.null(...)) 经常与 num_to_schoice 结合使用?
- c++ - C++ 检查路径是否在给定目录之外
- linux - 通过 x86-64 汇编程序管道时的竞争条件
- javascript - 用另一个替换字符串中的某些值
- mysql - 使用 Cast() 和 Try_Cast() 将列转换为 INT 时遇到问题
- sprite-kit - 自定义 SKNode 的 SpriteKit 更新功能
- javascript - 如何防止对 Postman 中的模拟服务器的循环请求?
- java - 如何转发来自第三方的 HTTPPost 数据?
- android - 如何使用 NotificationChannel.setConversationId API