如何在c++中循环读取多个文件(连着的数字文件名)

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:32:44
我要读取多个文件,文件名是数字+“.bmp”扩展名,请问如何用循环实现连续读取?我试图用int转string的方法,然后和扩展名相加合成文件名,最后得出的是string类型的总文件名,但是后面的程序要求文件名是char *name类型,string类型的没法转成那种。

这里假设string类型可能包含任意字符。否则,只需用不可能出现的字符分隔开即可。
因此,唯一的办法是将string的长度也写入到文件当中。下面是示例:
#include <string>
#include <fstream>
#include <sstream>
#include <vector>
#include <iostream>

inline void WriteString(std::ostream& ostr, std::string const& str) {
// 写入字符串长度
ostr << str.size() << "\n";
// 写入字符串
ostr.write(str.data(), str.size());
}

inline std::string ReadString(std::istream& istr) {
// 获取字符串长度
std::string line;
std::getline(istr, line);
std::istringstream tmp(line);
std::size_t size;
tmp >> size;
// 读取字符串
std::vector<char> result(size);
istr.read(result.data(), size);
return std::string(result.begin(), result.end());
}

int main() {
std::string const filename = "t.txt", s1 = "string 1 \n Yeah!", s2 = "string 2 \\ Yep!";
{
std::