C++基础笔记1
布尔型
第一位是0则表示false
否则表示true(1)
补充
==auto== 可自动推导类型
1 | auto var_i = 1; |
输出数据
printf
数字类型
1 | int d = 255; |
printf中输出不同大小的整形时,需要在类型前加大小修饰符
short long longlong
1 | long long lld = 2147486948; |
字符型
printf输出字符型用%c
输出宽度
1 | printf("%7d|\n", d);//右对齐 |
cout
数字类型
C++中进行优化
1 | cout << oct; |
字符型
cout直接输出字符型 cout << c << endl;
cout.precision();限制的是输出数字的个数
加上cout << fixed; 限制则是输出小数点后的个数
输出宽度
1 | cout.width(7); |
1 | cout.width(3); |
format(C++ 20 新特性)
数字类型
C++ 20 取二者之长
cout << format(“{}”, c) << endl;
输出宽度
1 | cout << format("{:>7}|", d) << endl; |
总结
补充sprintf
sprintf
是一个在 C 和 C++ 语言中使用的函数,它属于标准库中的输入/输出部分。sprintf
函数的作用是将格式化的数据写入一个字符串中,类似于 printf
函数,但它将输出写入一个字符串变量而不是直接输出到控制台。
1 | int sprintf(char *str, const char *format, ...); |
str
:指向目标字符串的指针,sprintf
会将格式化后的字符串存储在这里。format
:格式化字符串,它指定了后续参数如何被格式化和插入到最终的字符串中。...
:可变参数列表,这些参数将根据format
字符串中的格式说明符被格式化并插入到字符串中。
sprintf
的使用示例:
1 | char buffer[100]; |
在上面的例子中,%d
是一个格式说明符,它告诉 sprintf
将一个整数转换成字符串并插入到 buffer
中。
在下面这个例子,sprintf
很好的处理的时间点小于0的问题,将3:30补充为03:30。
1 | string getstr(int a, int b) { |
需要注意的是,sprintf
存在安全风险,因为它可能导致缓冲区溢出,如果格式化后的字符串长度超过了 buffer
的大小。因此,在实际编程中,推荐使用 snprintf
函数,它允许你指定目标缓冲区的最大长度,从而避免溢出:
1 | int snprintf(char *str, size_t size, const char *format, ...); |
size
参数指定了 str
缓冲区的最大长度,snprintf
会在达到这个长度之前停止写入,并且总是以空字符结尾。这样可以更安全地避免缓冲区溢出的问题。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Frite的个人博客!