簡體   English   中英

這會復制我的二進制文件中的所有數據嗎?

[英]Is this going to copy all the data in my binary files?

我有一個巨大的字符串數組存儲為二進制文件。

std::string strArr[1000];
std::ifstream file("strFile.bin",std::ios:: binary);
file.read((char*)&strArr,sizeof(strArr));
std::cout<<strArr[500];

該代碼會復制二進制文件中的所有數據嗎? 如果是這樣,我怎樣才能讓它不復制,所以如果我 output 一個字符串,它將直接從文件中獲取它。 有點指針的東西。 我真的很感謝有人會提供幫助,謝謝!

您的代碼不正確。 它正在創建 1000 個字符串。 這是正確的形式:

    std::string strArr(1000, 0);
    std::ifstream file("strFile.bin", std::ios::binary);
    file.read(strArr.data(), strArr.size());

它將從您的文件中讀取 1000 個字節(不是所有數據)。 是的,它會復制。 如果您不想復制,可以使用 linux 上的文件 memory 映射(請參閱)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM