我需要使用一个std::字符串来存储由fgets()检索的数据。为此,我需要将fgets()的char*返回值转换为std::string存储在数组中。如何做到这一点呢?
当前回答
char* data;
stringstream myStreamString;
myStreamString << data;
string myString = myStreamString.str();
cout << myString << endl;
其他回答
char* data;
std::string myString(data);
char* c1 = 'z';
char* c2 = 'w';
string s1{c1};
string s12{c1, c2};
如果您已经知道char*的大小,可以使用这个
char* data = ...;
int size = ...;
std::string myString(data, size);
这没有使用strlen。
编辑:如果字符串变量已经存在,使用assign():
std::string myString;
char* data = ...;
int size = ...;
myString.assign(data, size);
const char* charPointer = "Hello, World!\n";
std::string strFromChar;
strFromChar.append(charPointer);
std::cout<<strFromChar<<std::endl;
我需要使用std::string来存储由fgets()检索的数据。
为什么在编程c++时使用fgets() ?为什么不是std::getline()?