Gil*_*Raz 3 c++ arrays stdstring
我的任务是在 Linux 中编写一个文件系统,该系统将存储设备模拟为文件。
我被赋予的功能之一需要读取“文件”中的数据。为此,我有一个应该返回std::string.
如何使用以下函数将文件中的数据直接读入std::string?
void read(int addr, int size, char *ans)
Run Code Online (Sandbox Code Playgroud)
有没有办法将内部的字符数组std::string作为参数传递给这个函数?到目前为止,我遇到的所有方法和成员函数都只返回const char*,在这种情况下不起作用。
谢谢!
这样做的传统方法是传递一个指向字符串第一个字符的指针。这保证有效,因为标准保证 a 中的字符std::basic_string连续存储([basic.string]/2)。
因此,
read(addr, str.size(), & str[0]);
Run Code Online (Sandbox Code Playgroud)
有效,但前提是您之前已将字符串调整为非零大小。此外,您的read函数不会告诉您读取了多少个字符。您的 IO API 中需要有一些功能来告诉您这一点。
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |