Это сводит меня с ума. Я занимался этим более 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Φy ♠ ≈6 ♦
Что может происходить?
UPDATE:
int main()
{
//simple string creation
string a = "test";
//should print out "test"
cout << a << endl;
return(DSL_OKAY);
}
все еще печатает
▀ÇΦy♠≈6 ♦
БОЛЬШОЕ ОБНОВЛЕНИЕ:
Вот недавний. Я создал новый проект и вставил код, который опубликовал Нил Баттерворт (спасибо, кстати). Я запустил код, и он напечатан правильно. Затем я добавил два файла .lib в компоновщик в новом проекте (smile.lib для библиотеки SMILE и wsock32.lib для использования сокетов.)
Я попробовал код еще раз, и он правильно напечатал первый «тест», а затем напечатал тарабарщину. Это проблема с одним из .libs, который я связываю вместе. Я попробовал каждый из них по отдельности, чтобы увидеть, не конфликтуют ли они, и кажется, что проблема связана с библиотекой smile.lib. Мне нужно будет зайти в их документацию и выяснить, почему.
Есть идеи?
Спасибо всем за помощь
Спасибо