gpt4 book ai didi

c++ - 从 printf 中删除格式说明符

转载 作者:行者123 更新时间:2023-12-05 08:36:12 24 4
gpt4 key购买 nike


我想用 printf 输出一段文字。

如果我想打印用户先前输入的文本并且可能包含 %,则输出是一团乱码。这可能是由于 % 是 printf 中的格式说明符,但没有给出值/参数。

例如:

std::string inputString = "% Test";
printf(inputString.c_str());

Output: 6.698271e-308st

期望的输出是:% Test

有没有一种优雅的方法可以避免这种情况?输入 %% 而不是 % 是可行的,但它显然不是很用户友好。

我看到的唯一其他方法是修改输入字符串以自动将每个 % 替换为 %%。但这是要走的路吗?我特别想要/需要使用 printf,使用 cout 是不可能的

最佳答案

要么你使用这个:

printf("%s", string.c_str());

或者您使用根本不进行格式化的那个:

puts(string.c_str());

请注意,puts 总是添加换行符!

编辑:添加了 c_str 以免与实际问题混淆。

关于c++ - 从 printf 中删除格式说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69784664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com