gpt4 book ai didi

C++ 输出格式错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:58:47 25 4
gpt4 key购买 nike

当我遇到这个奇怪的错误时,我正在使用 C++ 进行输出格式化。这是我的代码示例,用于打印数组中包含的信息:

int store;
while(table[i]!=NULL)
{
store=table[i]->ReturnID();
output<<"ID: "<<setw(9)<<store<<"\t"; // Export to a file channel
store=table[i]->ReturnTotalNumber();
output<<" Total Number: "<<setw(5)<<store<<endl;
i++;
}

虽然这里的代码编译并按预期工作是我的 output.txt 文件的一部分:

ID:       243    Total Number:     0
ID: 312 Total Number: 0
ID: 458 Total Number: 0
ID: 700 Total Number: 0
ID: 738 Total Number: 0
.....

txt 文件的第二行似乎总是不平衡。其他的不管多少都OK。我还注意到,将第一个 setw(9) 从 9 更改为任何其他随机数可以修复该错误,但我无法解释。有人对此有任何解释吗?我的编译器是 GCC-G++ 4.4.1 版,我的 IDE 是 Code::Blocks 10.05。

最佳答案

根据您正在输出的字符串,该选项卡似乎以某种方式误入歧途。因此,您的任务是确定它是否不是由程序输出,或者它是否不是由您用来查看输出的任何工具呈现。

我会将输出发送到一个文件,然后使用您必须使用的任何十六进制转储实用程序来检查该文件以查看该选项卡是否确实存在。在 Linux(或带有 CygWin 的 Windows)下,您可以使用:

od -xcb fileNameYouCapturedTo

如果您可以确定它没有被输出,请在 glibc 上提出错误 here .如果正在输出,那么您有两种可能性。

首先,您可以针对您用于查看输出的任何工具提交错误,无论是编辑器还是您使用的终端程序(因为它似乎没有正确处理制表符)。

或者您可以完全放弃制表符而只输出一个空格。由于 setw(),您的列已经排列好,因此此处几乎不需要制表符。

关于C++ 输出格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409374/

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