【发布时间】:2012-02-13 17:56:14
【问题描述】:
在之前使用 Visual Studio 后,我在迁移到 RedHat 上的 g++ 编译时遇到了一个有趣的错误。
我有一个看起来像这样的循环:
for(unsigned int i = 0; i < data.size(); i ++){
for(int j = 0; j < data[i]->size; j++){
cout << data[i]->columns[j]<< ',';
}
cout << endl;
}
其中 data[i]->columns 是字符串 *,目的是用逗号分隔输出。 以前,这很有效,但是,今天我的输出看起来像这样:
,ata, two, three, four
,ata2, two, three, four
,ata3, two, three, four
如果我将代码稍微更改为: cout columns[j]
我明白了:
data
two
three
four
data2
two
three
four
什么可能导致这些字符与逗号重叠?这在 Visual Studio 编译器上没有发生。
【问题讨论】:
-
请复制粘贴(not 重新输入)实际 代码来演示错误。您发布的代码 sn-p 不太可能编译。 sscce.org.