C++ 在C+中将二叉搜索树写入文件+;

C++ 在C+中将二叉搜索树写入文件+;,c++,C++,我已经创建了一个二元搜索树,它将一个文本文件输入其中,然后按字母顺序排列,我可以直接将树打印到控制台,但当我尝试将它写入文本文件时,我得到的都是乱七八糟的,我是否可以使用fprintf(fp,“%s”,rootPtr->word)来实现这一点;?或者我应该将每个rootPtr->word放入一个数组中,然后将该数组写入文件 正在打印的代码: if (rootPtr == NULL) return; InOrder(rootPtr->left,fp); if(

我已经创建了一个二元搜索树,它将一个文本文件输入其中,然后按字母顺序排列,我可以直接将树打印到控制台,但当我尝试将它写入文本文件时,我得到的都是乱七八糟的,我是否可以使用fprintf(fp,“%s”,rootPtr->word)来实现这一点;?或者我应该将每个rootPtr->word放入一个数组中,然后将该数组写入文件

正在打印的代码:

if (rootPtr == NULL)
        return;
    InOrder(rootPtr->left,fp);
    if(rootPtr->word != "m")
        fprintf(fp, "%s",rootPtr->word );
        //cout << rootPtr->word << endl;
    InOrder(rootPtr->right,fp);

}
if(rootPtr==NULL)
返回;
顺序(rootPtr->left,fp);
如果(rootPtr->word!=“m”)
fprintf(fp,“%s”,rootPtr->word);
//单词正确,fp);
}
胡言乱语:

d0õAØAˆu 0({0¨AøA€A0þAÐBØA¸z0 Û0À›0Ð0ØAØA°i0ƒ0È245; 0ÈAÈAØA¨A;A@p0
AðAðAÓAøOA‰0è0-A0B°s0°r00™A.
u00ýAßA Bˆ0X BxrAÅAÈ236; 0ý0ýAÐA
A8ÅA0èAØv0@0°q0ÿAÿAÐAA8ÅA€ Bˆ9A Ü08WAø0hË0@JA8UAx欧元00èBÍ0YA
XAèAÄApè0èCAhAA°AHØ0èWAè0
0eaŸ0Û0°G0200; AˆGAÝ0
0è0@0A欧元A–ZAèjA
,A8þ0P•Að217; A™0ˆQAÈí0Þ0(zA°(A(}0P·A
“A”A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B卡氏AÀöAXð0ð?0È0ÈÈÈÈ0ÈÈêAÌAÈö0@b0欧元±0@0ÐPAZA†0ðAð4A
×0AˆCAhÚ0ðA¸0–A
AÐ&A@h08½Aó0@1Ax-0æAAAAAoAAAAAo0
B@AÈñ0ðA
AÐ0ÈiAƒA~0h/AÀAP0
Aøbxeahe0a
AÐAÐAÐAÐA@j0OA0AØ=Aè0oè0è08èAè0FA8MAèAèBAèAp
KAœAŸAètA8–0è0èAèAèAè0èAèAè0èAèAèAè0èAèAèAèAè0èAèAèAèA@IAht0PŽ08óA 0ˆ0ˆHAX–0Ð\A
BˆAˆb0hÞ0–0Õ0°:AxA
0-AH±A0†A€cAp~AГAØd0€pA'0š0ˆAÐAÐ0@hÒ0@A€bA0@a0èBXè00
+AØ>AØ0x0Ø0pØA
6A'0Ø0Ø«AØAØA(AÍA8 AØA8!AðA8RAØA@AA8VAØ0
“2010年10月10日,该地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的该地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的该地区的一个地区的一个地区的一个地区的一个地区的一个地区的该地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一个地区的一欧元

Ö0ˆAè÷A00
00ˆ0Ï0ÿ0ÿAÁ0ðBˆB°我简单地添加了。c_str()添加我的词尾:

fprintf(fp, "%s\n",rootPtr->word.c_str());

在你写出来之前,你有没有用调试器检查一下
word
是否是垃圾?word
的类型是什么,它是
std::string
?给定
rootPtr->word!=“m“
显示了对字符串文本比较的支持,我假设它是一个
std::string
。如果是这样,您需要在其上调用
.c_str()
,以匹配
%s
格式说明符。即使这样也不会处理数据中的任何嵌入NUL字符:
(…word.data(),1,…word.size(),f)
是一个选项,但我建议使用
std::ifstream
。什么类型是
rootPtr
?什么类型是
rootPtr->word
?暂时不要管树,试着向文件写入一个东西。无论
word
是什么,声明其中一个,分配一个值并将其写入文件。一旦开始工作,再进行一次smal一步,也许写一个树元素,以此类推。这是一个很好的输出。我来抽支烟。