【问题标题】:C++ file binary mode copy?C++文件二进制模式拷贝?
【发布时间】:2015-04-26 19:33:14
【问题描述】:

我正在尝试将 d.pdf 移动到 new.pdf,但移动后新文件已损坏。为什么?

void move(){

    char x;
    ifstream myfile;
    ofstream g;
    myfile.open ("d.pdf", ios::in|ios::binary);
    g.open("new.pdf",ios::out|ios::binary);

    while(myfile>>x)
        g<<x;
}

【问题讨论】:

  • 您应该使用read()write() 而不是基于文本的二进制数据提取/格式化。
  • 你能举个例子吗?
  • 请举例说明如何将其应用于我的小问题? :D
  • 我不会为你写代码。链接参考文档中的示例应该足够了,您可以推断出针对特定问题的解决方案。

标签: c++ file gcc binary


【解决方案1】:

代码正在跳过空格。 试试:

myfile >> noskipws;
while(myfile >> x)
    g << x;

【讨论】:

  • 您可以一步完成:g &lt;&lt; myfile.rdbuf();
  • @BenjaminLindley 是的,我坚持;我回答的是“为什么”部分,但你的台词更好。
  • @user2391356 好的,谢谢;我真的不在乎它是否有效,那只是我的“为什么”。无论如何,如果您愿意,请接受回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2012-07-06
  • 2016-09-30
相关资源
最近更新 更多