如何将二进制文件中的信息发送到屏幕AND外部文件
How do I send information from a binary file to the screen AND external file?
在我的一个项目中,我必须从二进制文件中读取4个独立的结构,然后将信息发送到屏幕和外部文件。有人能教我怎么做吗?我相信我已经看过这些文件了。
此外,当我编译和运行程序时,我会给用户一个继续的选项(当"Y"时做一个简单的操作)。如果用户输入了无效字符,我希望得到无效响应。请回答"Y"表示是,"N"表示否。它确实这样做了,但是,在输出之后,系统("暂停")将顺其自然,并按任意键继续将显示,指示pogram的终止。我很困惑为什么有人也可以帮助我。如果我输入Y或N,它将退出程序。
非常感谢
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
#include <iomanip>
#include <cctype>
using namespace std;
const int SIZE = 12;
struct Division
{
char divName [SIZE];
double sales [4];
};
int main()
{
Division Div_E;
Division Div_W;
Division Div_N;
Division Div_S;
void Describe_Program ();
void Create_Corporate_File (Division& mainDiv);
void Display_Corporate_Sales (Division& Div_E, Division& Div_W, Division& Div_N, Division& Div_S);
Describe_Program();
string Div;
char ans;
do
{
cout << "Enter the name of the division: n";
getline (cin,Div);
cin.ignore();
if (Div == "East")
{
Create_Corporate_File (Div_E);
}
else if (Div == "West")
{
Create_Corporate_File (Div_W);
}
else if (Div == "North")
{
Create_Corporate_File (Div_N);
}
else if (Div == "South")
{
Create_Corporate_File (Div_S);
}
else
{
}
cout << "nWould you like to continue? (Y/N)--n";
cin>>ans;
ans = toupper (ans);
if (ans != 'Y' && ans != 'N')
{
cout << "Invalid response. Please answer 'Y' for n";
cout << "Yes and 'N' for no.n" <<endl;
}
//cin.ignore();
}
while (ans == 'Y');
//Display_Corporate_Sales(Div_E, Div_W, Div_N, Div_S);
system ("PAUSE");
return 0;
}
void Describe_Program()
{
cout << "This program will prompt you to enter the sales amountn";
cout << "for each quarter of the North, South, West and East Division.n";
cout << "After you enter the sales amount for each quarter, the programn";
cout << "will be able to calculate the total quarterly sales for that";
cout << "division";
cout << endl<<endl;
return;
}
void Create_Corporate_File (Division& mainDiv)
{
fstream quarterly_sales;
quarterly_sales.open ("quarterly_sales.dat" , ios::out|ios::binary);
for(int sales = 0; sales < 4; sales++)
{
cout << "Please enter the sales amount for quarter " << sales + 1 <<":n";
cin >> mainDiv.sales [sales];
}
quarterly_sales.write((char*)(&mainDiv), sizeof(mainDiv));
quarterly_sales.close ();
}
void Display_Corporate_Sales (Division& Div_E, Division& Div_W, Division& Div_N, Division& Div_S)
{
fstream quarterly_sales;
quarterly_sales.open ("quarterly_sales.dat" , ios::in|ios::binary);
quarterly_sales.read ((char *)(&Div_E), sizeof(&Div_E));
cout << Div_E.divName ;
cout << Div_E.sales[0];
quarterly_sales.read (reinterpret_cast<char *>(&Div_W), sizeof(&Div_W))
cout << Div_W.divName ;
cout << Div_W.sales[0];
quarterly_sales.read (reinterpret_cast<char *>(&Div_N), sizeof(&Div_N))
cout << Div_N.divName ;
cout << Div_N.sales[0];
quarterly_sales.read (reinterpret_cast<char *>(&Div_S), sizeof(&Div_S))
cout << Div_S.divName ;
cout << Div_S.sales[0];
quarterly_sales.close();
return;
}
虽然我不打算给你家庭作业的代码答案,但你要寻找的命令是cout(写入屏幕)和file IO命令(请参阅以下链接和"文本文件"下的示例):
http://www.cplusplus.com/doc/tutorial/files/
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 位阵列上的快速AND运算
- 使用 SFML 和 C++ 将 Pixel 打印到屏幕上
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- BoostPython and CMake
- OpenSSL BIO and SSL_read
- Winapi:屏幕截图未显示在窗口中
- 如何在快板的屏幕中显示子位图的绘制?
- Gurobi GRBModel and GRBmodel in C++
- 按回车键后输出屏幕关闭
- 要在屏幕上绘制一些小瓷砖,我应该使用 QQuickItem 还是 QQuickPaintedItem?
- SFML 向下移动时如何围绕屏幕中心旋转?
- 截取屏幕截图后程序卡住
- std::visit and std::variant usage
- 如何将二进制文件中的信息发送到屏幕AND外部文件