簡體   English   中英

有效獲取數據的算法

[英]Algorithm for taking data in efficient way

我已經創建了一個二進制文件。 在其中,數據以二進制形式存儲,但我將以人類可讀的形式顯示它,例如;

[someOtherData]opalgo$apollo$[someOtherData]
               ^
               ^
               ^
             file pointer

我想將數據“ opalgo”保存在temp_S中,該數據聲明為string。要注意,在示例中未顯示,我不知道該位置是什么數據及其長度。

將數據存放在二進制文件中;

  • 首先,我通過增加文件指針來計算其長度,並且每次都與“ $”進行比較。
  • 其次,我根據數據長度返回,在這種情況下| opalgo | = 6。
  • 第三,每次使用一個char並將其與字符串連接,該字符串以“”初始化。 也就是說,字符串+ = temp_Char;

在我看來,以上算法是一團糟。 我找不到從二進制文件中獲取數據的有效方法。 現在,我有點as愧。 你能給我一個更好的方法嗎?

編輯:我不知道文件大小,但是如您所知,我可以使用seekg和tellg進行計算。

而不是分三步來完成,而是可以在第一步中全部完成:尋找終止符'$'時,只需將字符放入temp_S 無需計算長度。

std::ifstream input(...);

std::string temp_S;
char c;
while (input.get(c))
{
    if (c == '$')
        break;  // Found terminator, read no more into string
    temp_S += c;
}

暫無
暫無

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

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