[英]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.