【发布时间】:2009-04-28 05:16:26
【问题描述】:
这让我发疯了。我已经研究了 2 个多小时试图弄清楚这一点......
这是我的问题。我正在开发一个与贝叶斯网络一起使用的相当大的程序。这是主要功能:
using namespace std;
int main()
{
DSL_network net;
initializeNetwork(net);
setEvidence(net);
net.SetDefaultBNAlgorithm(7);
net.SetNumberOfSamples(80000);
cout << "Samples:\t" << net.GetNumberOfSamples() << endl;
updateEvidence(net);
//net.WriteFile("test.dsl");
return(DSL_OKAY);
}
这一切都很好。当我想打印一个字符串时,问题就来了:
using namespace std;
int main()
{
//simple string creation
string a = "test";
//should print out "test"
cout << a << endl;
DSL_network net;
initializeNetwork(net);
setEvidence(net);
net.SetDefaultBNAlgorithm(7);
net.SetNumberOfSamples(80000);
cout << "Samples:\t" << net.GetNumberOfSamples() << endl;
updateEvidence(net);
//net.WriteFile("test.dsl");
return(DSL_OKAY);
}
这是输出(只是打印字符串 a...):
▀ÇΦy♠≈6 ♦
会发生什么?
更新:
int main()
{
//simple string creation
string a = "test";
//should print out "test"
cout << a << endl;
return(DSL_OKAY);
}
仍然打印
▀ÇΦy♠≈6 ♦
重大更新: 这是最近的。我创建了一个全新的项目并粘贴了 Neil Butterworth 发布的代码(谢谢顺便说一句)。我运行了代码,它打印正确。然后我将这两个.lib 文件添加到新项目的链接器中(smile.lib 用于 SMILE 库,wsock32.lib 用于套接字。)
我再次尝试了代码,它正确打印了第一个“测试”,然后打印了乱码。这是我链接在一起的一个 .lib 的问题。我自己尝试了每一个,看看它们是否只是冲突,似乎是 Smile.lib 库导致了这个问题。我需要查看他们的文档并找出原因。
有什么想法吗?
感谢大家的帮助
谢谢
【问题讨论】:
-
这有点含糊(至少在这个时候对我来说)——你是在说:'string a = "test"; cout
-
是否有任何#includes 也可能包含字符串类?
-
是的,可能有。这会是个问题吗?我会检查的
-
“我是一个使用贝叶斯网络的相当大的程序。”哇,我印象深刻,你写了一个有感知力的程序,它知道如何向 SO 发布它自己的问题!
-
我检查了#includes,没有冲突。