Professional Documents
Culture Documents
Taller 3 - Archivos Binarios
Taller 3 - Archivos Binarios
Taller 3 - Archivos Binarios
#include <fstream>
#include <string>
#include <cstring>
#include <sstream>
struct Tool{
int id;
char name[20];
int quantity;
int cost;
};
struct Tools{
int size;
Tool tools[100];
}tool;
myFile.open(nameFile, ios::in);
if (!myFile.is_open()){
cout << "Error while opening file " << nameFile << endl;
}
while(getline(myFile, line)){
stringstream str(line);
getline(str, word,delimiter);
aux_tool.id = stoi(word);
getline(str, word,delimiter);
strcpy(aux_tool.name, word.c_str());
getline(str, word,delimiter);
aux_tool.quantity = stoi(word);
getline(str, word,delimiter);
aux_tool.cost = stoi(word);
tool.tools[count] = aux_tool;
count++;
}
myFile.close();
tool.size = count;
};
fstream myFile;
string nameTxt = "herram.txt", nameBin = "herram.bin", line;
char delimiter = ' ';
int main() {
int option;
switch (option){
case 1:{
readFile(nameTxt, tool, delimiter);
break;
}
case 2:{
for (int i = 0; i < tool.size; i++){
if (tool.tools[i].cost != 0){
cout << tool.tools[i].id << " " << tool.tools[i].name << " "
<< tool.tools[i].quantity << " " << tool.tools[i].cost << endl;
}
}
if (tool.tools[tool.size].cost != 0 &&
tool.tools[tool.size].quantity !=0){
cout << tool.tools[tool.size].id << " " <<
tool.tools[tool.size].quantity << " " << tool.tools[tool.size].cost << "
" << tool.tools[tool.size].name << endl;
}
break;
}
case 3:{
Tool aux_tool;
break;
}
case 4:{
int provI, provQ, provC; //ID, quantity and cost provisional
char provN[20];
tool.tools[tool.size].id = provI;
for (int i = 0; i < 20; i++){
tool.tools[tool.size].name[i] = provN[i];
}
tool.tools[tool.size].quantity = provQ;
tool.tools[tool.size].cost = provC;
break;
}
case 5:{
int provI, provQ, provC; //ID, quantity, cost
char provN[20]; //and name provisional
break;
}
case 6:{
Tool aux_tool;
int provI;
}
}
break;
}
}
}
}