gpt4 book ai didi

c++ - 在 C++ 代码中嵌入文本文件

转载 作者:太空狗 更新时间:2023-10-29 23:41:29 25 4
gpt4 key购买 nike

我有以下文本文件:数据数据

16
0.0950125098376374401853193354250
0.281603550779258913230460501460
0.458016777657227386342419442983
0.617876244402643748446671764049
0.755404408355003033895101194847
0.865631202387831743880467897713
0.944575023073232576077988415535
0.989400934991649932596154173450

0.189450610455068496285396723209
0.182603415044923588866763667977
0.169156519395002538189312079058
0.149595988816576732081501730116
0.124628971255533872052476277863
0.0951585116824927848099251053810
0.0622535239386478928628438391746
0.0271524594117540948517805723700

和下面的 C++ 代码来准备它:

ifstream In;
In.open(("g.dat").c_str());
In>>gaussdim;
gt = new double[gaussdim];
gc = new double[gaussdim];
for(int i=0;i<gaussdim/2;i++)
{
In>>gt[i];
gt[gaussdim-i-1]=-gt[i];
}
for(int i=0;i<gaussdim/2;i++)
{
In>>gc[i];
gc[gaussdim-i-1]=gc[i];
}
In.close();

我想将这个数据文件嵌入到我的程序中,这样我就可以轻松地重新分发它,而不是依赖于总是处理许多不同的文件。我的目标是 linux 和 mac,所以 xxd 可以让我将数据转换为大字符。我需要下一步的帮助,即如何将此 char 转换为流或任何更好的解决方案。你有什么建议吗?

编辑:很多好的答案,对我来说选择的一个优点是对代码的更改很小并且足够通用,我可以在代码的其他类似部分使用它,其中几个输入文件具有不同的结构被解析。

最佳答案

我猜你实际上并不想在你的代码中嵌入一个文本文件,所以 Blastfurnace 和 Kyle C 的答案为你的问题提供了更合理的解决方案。

但如果您真的确实想要将文本文件嵌入到您的代码中,然后将其作为流读入,那么最简单的方法就是这样。

首先,将文本文件作为字符串嵌入:

static const char *gdat="16\n"
"0.0950125098376374401853193354250\n"
"0.281603550779258913230460501460\n"
"0.458016777657227386342419442983\n"
"0.617876244402643748446671764049\n"
"0.755404408355003033895101194847\n"
"0.865631202387831743880467897713\n"
"0.944575023073232576077988415535\n"
"0.989400934991649932596154173450\n"
"\n"
"0.189450610455068496285396723209\n"
"0.182603415044923588866763667977\n"
"0.169156519395002538189312079058\n"
"0.149595988816576732081501730116\n"
"0.124628971255533872052476277863\n"
"0.0951585116824927848099251053810\n"
"0.0622535239386478928628438391746\n"
"0.0271524594117540948517805723700\n";

然后,您可以使用 stringstream(gdat) 而不是使用 ifstream("g.dat"),并获得一个对于您的目的而言实际上相同的流。

关于c++ - 在 C++ 代码中嵌入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com