Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么流会将我并没有包含的值写入我的文件?_C++_Wxwidgets_Ofstream - Fatal编程技术网

C++ 为什么流会将我并没有包含的值写入我的文件?

C++ 为什么流会将我并没有包含的值写入我的文件?,c++,wxwidgets,ofstream,C++,Wxwidgets,Ofstream,我正在制作一个程序,它使用一个函数将一个模式保存到一个文件中,像往常一样,我使用一个ofstream来实现这一点。该模式是由4行16列组成的网格。当我在将数据写入文件之前输出变量值时,所有值都显示为正确;但是,当检查该文件时,代码中始终包含两三个甚至没有包含的附加值。为什么呢 以下是相关代码: void Sampler_SynthFrame::OnSavePattern(wxCommandEvent& event) { wxFileDialog saveFileDialog(th

我正在制作一个程序,它使用一个函数将一个模式保存到一个文件中,像往常一样,我使用一个ofstream来实现这一点。该模式是由4行16列组成的网格。当我在将数据写入文件之前输出变量值时,所有值都显示为正确;但是,当检查该文件时,代码中始终包含两三个甚至没有包含的附加值。为什么呢

以下是相关代码:

void Sampler_SynthFrame::OnSavePattern(wxCommandEvent& event)
{
    wxFileDialog saveFileDialog(this, _("Choose a pattern file to load..."), "", "",
                                "PTN files (*.ptn)|*.ptn", wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
    if (saveFileDialog.ShowModal() == wxID_CANCEL)
        return;

    ///load file and error handling
    wxFileOutputStream output_stream(saveFileDialog.GetPath());
    if (!output_stream.IsOk())
    {
        wxLogError("Cannot open file '%s'.", saveFileDialog.GetPath());
        return;
    }
    else{
        string szSave_pattern;
        wxString path = saveFileDialog.GetPath();
        szSave_pattern = path.ToStdString();
        ofstream writeptn(szSave_pattern,ios::binary);
        writeptn << colorn << '\n' << color1 << '\n' << color2 << '\n' << color3 << '\n' << color4 << '\n' << color5 << '\n' << color6 << '\n' <<
        color7 << '\n' << color8 << '\n' << color8 << '\n' << color9 << '\n' << color10 << '\n' << color11 << '\n' << color12 << '\n' << color13 << '\n' <<
        color14 << '\n' << color15 << '\n' << color16 << '\n' << color17 << '\n' << color18 << '\n' << color19 << '\n' << color20 << '\n' << color21 << '\n' <<
        color22 << '\n' << color23 << '\n' << color24 << '\n' << color25 << '\n' << color26 << '\n' << color27 << '\n' << color28 << '\n' << color29 << '\n' <<
        color30 << '\n' << color31 << '\n' << color32 << '\n' << color33 << '\n' << color34 << '\n' << color35 << '\n' << color36 << '\n' << color37 << '\n' <<
        color38 << '\n' << color39 << '\n' << color40 << '\n' << color41 << '\n' << color42 << '\n' << color43 << '\n' << color44 << '\n' << color45 << '\n' <<
        color46 << '\n' << color47 << '\n' << color48 << '\n' << color49 << '\n' << color50 << '\n' << color51 << '\n' << color52 << '\n' << color53 << '\n' <<
        color54 << '\n' << color55 << '\n' << color56 << '\n' << color57 << '\n' << color58 << '\n' << color59 << '\n' << color59 << '\n' << color60 << '\n' <<
        color61 << '\n' << color62 << '\n' << color63;
        writeptn.close();
    }
}
void Sampler\u SynthFrame::OnSavePattern(wxCommandEvent&event)
{
wxFileDialog saveFileDialog(此,(“选择要加载的模式文件…”),“”,“”,
“PTN文件(*.PTN)|*.PTN”,wxFD|u保存| wxFD|u覆盖|提示);
if(saveFileDialog.showmodel()==wxID\u取消)
返回;
///加载文件和错误处理
wxFileOutputStream输出流(saveFileDialog.GetPath());
如果(!output_stream.IsOk())
{
wxLogError(“无法打开文件“%s.”,saveFileDialog.GetPath());
返回;
}
否则{
字符串保存模式;
wxString path=saveFileDialog.GetPath();
szSave_pattern=path.ToStdString();
流writeptn(szSave_模式,ios::binary);

writeptn您在文件中写入color8和color59两次。您可能希望在发布问题之前检查这一点。

您在文件中写入color8和color59两次。您可能希望在发布问题之前检查这一点。

color59他们发明数组是有原因的-这是一个主要reasons!你也可以通过使代码布局更加系统化来帮助自己。为什么
colorn
而不是
color0
color00
?aa和color8我只会害怕变量声明的looooonnnnggg列表。第一次强迫自己远离堆栈溢出。请注意在这里说“谢谢”的首选方式是投票选出好的问题和有帮助的答案(一旦你有足够的声誉这么做),并接受对你提出的任何问题最有帮助的答案(这也会给你的声誉带来一点提升)。请看网页,还有和
color59他们发明数组的一个原因-这是一个主要原因的演示!你也可以通过使代码布局更系统来帮助自己。为什么
colorn
而不是
color0
color00
?aa和color8我只会害怕looooonnnnggg变量声明列表。第一次强迫自己远离Stack Overflow欢迎。请注意,在这里说“谢谢”的首选方式是投票选出好的问题和有用的答案(一旦你有足够的声誉这么做),并接受对你提出的任何问题最有用的答案(这也会给你的声誉带来些许提升)。请查看该页面,以及