我用C语言编写了一个代码,运行得很好,我将其翻译为C ++。那里给出了错误的输出。我进行了一次迭代,将输入和迭代器变量都用作char以节省空间。但表现不如预期。
unsigned char repeat, i;
cin >> repeat;
for(i= 0; i < repeat; i++)
等效行是什么
scanf("hhi", &repeat)
?
为什么在C ++中不将char当作数字?
例如参见n3337,C ++标准草案,实际上等效于C++11标准。
一种编程语言是规格,通常写在某些文档中。其semantics与syntax一样重要。
如果使用最近的GCC变体编译C ++源代码,我建议将invoke用作g++ -Wall -Wextra -g
,以启用许多警告和一些调试信息。
[还考虑使用某些static program analysis工具,例如Frama-C或Clang static analyzer或Coverity等...
也请阅读How to debug small programs和有关Undefined behavior
也请参阅this site about C and C++并研究RefPerSys(我积极参与的一些“有趣的” C ++ free software项目,与AGI相关)。
至少出于启发目的,研究现有C ++ open source项目的源代码。立即想到Qt或fish shell(但github或gitlab或其他位置上还有成千上万的其他字符,例如Ghudi,PPL,Fox toolkit)。您将通过为他们积极贡献而学到很多东西。