C/CPP笔记
杂记
struct msg_train和typedef struct msg_train 大小不一样
cstdio和stdio
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
#include <cstdio>
int main() {
std::printf("Hello, World!\n");
return 0;
}
- 命名空间:
stdio.h
中的函数在 C++ 中位于全局命名空间,而cstdio
中的函数在 C++ 中位于std
命名空间。 - 使用场景:在 C++ 编程中,推荐使用
cstdio
而不是stdio.h
,以确保代码符合 C++ 标准并使用命名空间。 - std::可加可不加
>>指向
cin>>;cout<<;
cin/cout是人,cin>> 代表人输入的数据流到计算机
空白(即空格、横向制表符、纵向制表符、回车符、换行符、进纸符中的一种)
while(cin >> n);
结束时机
const string hexdigits = "0123456788ABCDEF";
string result;
string::size_type n;
while (cin >> n)
if (n < hexdigits.size())
result += hexdigits[n];
cout << "res: " << result << endl;
//输入enter不会结束while,因为cin不会返回错误,但cin会返回,是卡在while循环,而不是卡在cin
在C++中,使用while(cin >> n);
这种形式的循环会一直运行,直到输入流cin
遇到错误或到达文件结尾。通常,这种情况会发生在以下几种情况之一:
- 输入流中断:例如,用户在命令行中输入EOF(End of File)标志。对于Linux系统和MacOS,EOF通常可以通过按下
Ctrl+D
来输入;对于Windows系统,EOF可以通过按下Ctrl+Z
后再按下Enter
来输入。 - 输入数据格式不匹配:如果
cin
期望读取的是整数(因为n
是一个整数变量),但是用户输入了一个非整数值(例如字母或其他非数字字符),那么cin
会进入错误状态,导致循环终止。 - 输入流关闭:如果输入流被关闭,例如在程序中调用了
cin.close()
或其他导致输入流关闭的操作。
cin
是 C++ 中的标准输入流,用于从标准输入设备(通常是键盘)获取输入。cin
的返回值并不是一个简单的值,而是一个 istream
对象的引用
在C++中,如果使用cin
进行输入,当到达输入的末尾(即遇到EOF,End Of File)时,cin
会进入一种错误状态,无法再读取数据。这时cin
对象会变为“假”(即在布尔上下文中为false
)