c++ 格式化字符串
时间: 2023-11-18 09:52:48 浏览: 52
在 C++ 中,可以使用 `printf` 或 `sprintf` 函数来格式化字符串。其中,`printf` 函数将格式化后的字符串输出到标准输出流中,而 `sprintf` 函数则将格式化后的字符串存储到指定的字符数组中。
下面是一个使用 `printf` 函数格式化字符串的例子:
```c++
int num = 123;
char str[100];
sprintf(str, "The number is %d", num);
printf("%s\n", str);
```
输出结果为:
```
The number is 123
```
在格式化字符串时,可以使用各种占位符来表示不同类型的数据。常用的占位符包括:
- `%d`:表示整数类型。
- `%f`:表示浮点数类型。
- `%s`:表示字符串类型。
- `%c`:表示字符类型。
- `%p`:表示指针类型。
相关问题
c++格式化字符串.怎么用
C++格式化字符串,也称为`std::format`或`C++20`中的格式化I/O,是C++20标准引入的一种强大的字符串格式化方法。它提供了一种更加灵活且安全的方式来替换旧有的`printf()`和`stringstream`等格式化输出方式。使用`std::format`,你可以直接在模板字符串中嵌入变量并指定它们的格式,无需担心内存溢出和类型不匹配的问题。
以下是一个基本的使用示例:
```cpp
#include <iostream>
#include <fmt/core.h> // 引入格式化库
int main() {
int age = 25;
double pi = 3.1415926;
std::string formatted_str = fmt::format("My name is {}, and I am {} years old.", "Alice", age);
std::cout << formatted_str << "\n"; // 输出: My name is Alice, and I am 25 years old.
std::cout << fmt::format("{:.2f}", pi) << "\n"; // 输出: 3.14
return 0;
}
```
在这个例子中:
- `fmt::format`是一个模板函数,它接受一个格式字符串和一系列可替换的占位符(`{}`)。
- 占位符后面可以跟一个格式说明符,如`.2f`表示保留两位小数的浮点数格式。
- `fmt::to_string`等函数可以将不同类型的值转换为格式化的字符串。
C++ scanf格式化字符串
C++中的scanf函数是一个格式化输入函数,用于从标准输入流中读取数据并将其存储在变量中。scanf函数的格式化字符串参数指定了输入数据的类型和格式。下面是一个scanf格式化字符串的例子:
```c++
int num;
char str[50];
scanf("%d %s", &num, str);
```
在上面的例子中,"%d %s"是格式化字符串,"%d"表示读取一个整数,"%s"表示读取一个字符串。"&num"和"str"是变量名,用于存储读取的数据。注意,在读取字符串时,需要使用数组名作为参数,因为数组名本身就是指向数组的指针。