已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
2天前关闭。
Improve this question
#include <iostream>
#include <fstream>
#include <cstring>
struct Data {
char *Hold1;
char *Hold2;
};
int main() {
//Variables
int choice , loop = 0, RecAmount = 0;
std::string DepName, output1;
double inp2, output2;
////File Check
std::fstream inventory;
inventory.open("inventory.dat", std::ios::out|std::ios::in|std::ios::binary );
if (inventory.fail()){
inventory.open("inventory.dat", std::ios::out|std::ios::in | std::ios::binary|
std::ios::trunc);
std::cout << "Error opening file....";
return 0; }
while (loop < 1) {
std::cout << "\nRead/write testing\n";
std::cout << "1. Input Data\n";
std::cout << "2. Read Data Output\n";
std::cin >> choice;
////Input 2 strings
if (choice == 1) {
std::cout << "Testing input\n";
struct Data test1;
test1.Hold1 = "First test";
test1.Hold2 = 29;
}
if (choice == 2) {
std::cout << "Testing output\n";
//// Add way to choose which data is read and displayed
inventory.read ((char *)& inp2, sizeof(Data));
std::cout << "Character input = " << output1 << std::endl;
}
}
}
我不知道如何访问或使用二进制文件。我需要:
- 将数字和字符数组写入二进制文件(在此文件中命名为“inventory.dat”)
- 能够查找和读回所选信息(比如我输入了3组数据,只想显示第2组)
- 覆盖任何选定的数据(找到第二组数据并更改它)
我以前试过查找信息,但找不到任何我能理解或使用的东西,因此任何帮助都将不胜感激。
1条答案
按热度按时间hjzp0vay1#
下面是一个使用
char
数组的例子。这不是很完整,但应该可以让你从正确的方向开始。如果确实需要更多的错误检查。