【问题标题】:Files in C++, HandlingC++ 中的文件,处理
【发布时间】:2015-02-08 15:16:21
【问题描述】:

关于我以前的帖子不太成功,我想问一个问题,我希望我不会被永久禁止。 在我这学期的 C++ 中,我将与许多其他章节一起在文件中进行检查。 我的问题是假设我想处理一个文本文档

是:

#include <iostream>
#include <fstream>
using namespace std;
int main(){
    ofstream thanosFile; //ofstream allows me to create and WRITE a file
    thanosFile.open("thanos.txt");
    thanosFile << "Hello how are you I'm fine!\n";
    thanosFile.close();
}

同:

#include "stdafx.h"
#include <stdio.h>
main(){
    FILE f;
    printf("Give name of file"); 
    scanf(%s,thanosFile);
    f=fopen(thanosFile, "w"); // "w" defines that I want to write the file
    scanf("Hello how are you I'm fine!\n");
    fclose(f);
}

?? 此外,有人可以解释我如何处理二进制文件吗?方法是一样的吗?我可以用第一种方法吗,因为我发现它更容易,因为我对第二种方法的格式感到困惑!

【问题讨论】:

  • 它们相差甚远。例如;后者比前者更可怕。
  • C++ 版本(第一个)是不必要的冗长。见this answer to a related question
  • scanf("Hello how are you I'm fine!\n"); 这真的没有意义。你的意思可能是fprintf(f,"Hello how are you I'm fine!\n");
  • f=fopen(thanosFile, "w"); 如果fopen() 失败怎么办?
  • 您可能应该在 google 中搜索二进制文件并自己学习它,因为有很多东西要学习。

标签: c++ c file


【解决方案1】:

我非常担心您不了解您正在编写的代码在做什么,以及它们有何不同。您应该了解您编写的每一行代码。

为了回答您的问题,第一个程序是使用流用 C++ 编写的,第二个程序是使用 FILE I/O 的东西用 C 编写的。

这些程序非常相似,除了第一个用 C++ 写入文件,第二个用 C 写入文件。所以在功能上它们是相同的程序,但用两种不同的语言编写。 (如果这是你的问题)

在写入二进制方面,我知道在 C 程序中,您可以在 fopen 中给它一个“b”以将其设置为二进制。要使用 ostreams 打开二进制文件,您需要执行以下操作:

file.open("fiename", ios::binary)

以二进制模式打开文件。但远不止这些。您应该阅读一个很棒的网站,我可以推荐在此 C++ File I/O Tutorial 上有一些东西@

但是说真的,我求求你,花点时间理解你正在编写的代码。否则你不会学到任何东西,你会注意到我在这里没有给你所有的答案,因为我认为当你自己解决问题时,事情会变得最好。

我发现,如果我自己努力寻找答案,我会学到最多的东西。有时我肯定会在 Stack 上询问,但只有在我尽我所能获得所需信息之后。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多