首頁  >  問答  >  主體

文件读取 - C++文件流读写文件,文件大小是否有限制?

一年前只会C语言的时候,曾用C写过一个基于Huffman树的文件压缩程序。打开文件的用的是C标准库中的fopen()。后来发现这样的程序对于稍微大一点的程序(1M以上大概)就无法运行了。在搜索引擎上找了半天特不知道问题出在哪。

今年用C++重新写这个程序,打算使用文件流打开文件,但不知道对于比较大的文件是都可以正常运行。

我的疑问如下:

  1. C与C++读取文件的方式有区别吗?

  2. 如果确实不能“一口气”打开大文件,什么是正确的打开方式?

  3. C/C++里打开文件的底层操作是什么呢?

贪心地问了三个问题,大神们答哪个都可以哈。

先在此谢过大家了!

高洛峰高洛峰2714 天前583

全部回覆(1)我來回復

  • PHPz

    PHPz2017-04-17 14:50:30

    題主的讀寫檔案的程式碼不知道什麼樣,懷疑是有問題的。
    如果是1M以上就有問題了,那不太可能是受到相關的限制,應該是程式碼的問題。

    先回答幾個疑問。
    1、可以說有。 C++可以使用C方式的檔案操作函數,但C不能使用C++的fstream。這是針對標準函式庫而言,非作業系統特定API。
    2、不知道題主要開啟的檔案有多大。如果真的需要,請考慮使用系統API。
    3、底層操作其實是系統呼叫的封裝。

    才疏學淺,如有不對之處,還請見諒。

    回覆
    0
  • 取消回覆