【发布时间】:2012-07-24 14:07:43
【问题描述】:
所以我制作了一个使用 ifstream 打开文本文件的程序。现在我想做它,所以它以二进制输出这个文件。我尝试过 ofstream 并使用 .write() 但是当我这样做时程序崩溃了。正如我在网上看到的那样,我在使用 .write() 时正确设置了它,但我还没有看到有人用我正在使用的东西来做它。有人对此有解决方案吗?另外,我不知道为什么'InputFile'和'OutputFile'都像这样突出显示为蓝色。
#include <iostream>
#include <fstream>
#include <string>
#include <bitset>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc < 2)
{
cout << "Error 1";
return 0;
}
else
{
int WIDTH, HEIGHT;
ifstream InputFile;
InputFile.open(argv[1], ios::in);
ofstream OutputFile;
OutputFile.open("OUTPUT.raw", ios::binary | ios::app);
cout << "Enter Width" << endl;
WIDTH = cin.get();
HEIGHT = WIDTH;
for (int x = 0; x < WIDTH; x++)
{
for (int y = 0; y < HEIGHT; y++)
{
OutputFile.write((char*)InputFile.get(), sizeof(InputFile));
}
}
}
//cout << bitset<8>(txt[i]);
return 0;
};
【问题讨论】:
-
我们需要更多信息。你是怎么设置的?它是如何崩溃的,在哪里崩溃?
-
可能,如果您显示失败的代码,我们可以提供帮助。
-
您是否使用了
ios::out | ios::binary标志?给我们看一些代码。 -
你能显示使用你尝试过的代码吗?
-
如果您还显示一个示例输入文件会很好。
标签: c++ windows binary iostream fstream