【发布时间】:2016-05-08 12:09:18
【问题描述】:
我将 5 个字符串的数组发送到将它们写入二进制文件的函数中。我的问题是我该怎么做?如果我通过指针发送数组,如何检查数组的大小?我包括了#include <string> 和using namespace std;。
void my_func(string *array, int n)
{
ofstream my_file("file.bin", ios_base::binary);
if (!my_file)
{
cout << "error" << endl;
return;
}
my_file.write((char*)array, n*sizeof(string));
my_file.close();
}
void fun1()
{
string array[5];
for (int i = 0; i < 5; i++)
{
cout << "enter word " << i + 1 << ": ";
getline(cin, array[i]);
}
my_func(array,5);
return;
}
所以这行得通,但是我没有使用太多字节,我想获取正确数量的字节。或者,如果有一种简单的方法可以做到这一切,我将不胜感激。请给我一个学校的例子,我是一名学生。
输出:
【问题讨论】:
-
string是如何定义的? -
@LogicStuff 我会发图片
-
您正在将
std::string的实现写入文件而不是其内容。 -
不清楚
string是std::string,灵溪。 OP 没有提供足够的信息来得出结论。 -
我用@PeteBecker 的更多信息编辑了帖子。
标签: c++ arrays pointers binary fstream