簡體   English   中英

從標准輸入中讀取字符串

[英]Reading String From Stdin

我有這段代碼將從stdin讀取為char* 是否可以直接在std::string執行此操作?

int size = std::atoi(m_content_size);
char* buffer;
buffer = (char*)malloc(size);
fread(buffer, 1, size, stdin);

...

free(buffer);

我想我可以做std::string sBuffer(buffer) ,但是我希望有更好的選擇。

謝謝。

您可能應該讀入chars左右的向量,以免給人以“ text”的印象,如果您確實有任意二進制數據:

#include <iostream>
#include <vector>

// ...

std::vector<char> buf(size);
std::cin.read(buf.data(), buf.size());

// all done, will clean up after itself!
int size = std::atoi(m_content_size);
std::string buffer(size);
fread(&buffer[0], 1, size, stdin);

盡管您可以使用cin (以及一個更合適的容器,如果它不是字符串,而只是原始二進制數據)

暫無
暫無

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

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