这个问题试图收集每年出版的数十本不良C++书籍中的少数珍珠.
与许多其他编程语言不同,这些编程语言经常从互联网上的教程中随处获取,很少有人能够快速学习C++,而无需学习编写精良的C++书籍.这样做太复杂了.事实上,它是如此庞大和复杂,有很多非常糟糕的C++书籍.我们并不是在谈论糟糕的风格,而是体育明显的事实错误和促进糟糕的编程风格.
请编辑接受的答案,以提供高质量的书籍和近似的技能水平 - 最好 在 C++聊天室讨论您的添加后.(如果他们不同意建议,常客可能会毫不留情地撤销你的工作.)添加一篇关于你亲自阅读/受益的每本书的简短描述/描述.随意讨论质量,标题等.符合标准的书籍将被添加到列表中.由C和C++用户协会(ACCU)撰写评论的图书都有指向评论的链接.
*注意:常见问题和其他资源可以在C++标签信息和c ++ - faq中找到.
我看到人们最近在很多帖子中试图读取这样的文件.
码
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char **argv)
{
char *path = argc > 1 ? argv[1] : "input.txt";
FILE *fp = fopen(path, "r");
if( fp == NULL ) {
perror(path);
return EXIT_FAILURE;
}
while( !feof(fp) ) { /* THIS IS WRONG */
/* Read and process data from file… */
}
if( fclose(fp) == 0 ) {
return EXIT_SUCCESS;
} else {
perror(path);
return EXIT_FAILURE;
}
}
Run Code Online (Sandbox Code Playgroud)
这个__CODE__循环有什么问题?
为什么~2等于-3?~操作员如何工作?
我看到下面的代码行这里的C.
int mask = ~0;
Run Code Online (Sandbox Code Playgroud)
我已经打印了maskC和C++ 的值.它总是打印-1.
所以我确实有一些问题:
~0要为掩码变量赋值?~0什么?-1而不是~0吗?我真的很难翻转C int变量中的位.我是这样做的:
input = 15;
input = ~input;
printf("%d", input);
Run Code Online (Sandbox Code Playgroud)
但它总是显示为-16.应该是0!如果15写的是1111,为什么会回来10000?!这令人抓狂!有人能帮帮我吗!?
我想知道对int值的操作是什么做的.我编码并打印了〜,指定为3,它给了-4.请告诉我它的用法.
c ×4
c++ ×3
bit-masks ×1
c++-faq ×1
complement ×1
feof ×1
file ×1
masking ×1
operators ×1
while-loop ×1