C++ C++;渔获量

C++ C++;渔获量,c++,C++,我有一个关于“捕获输出”的问题putchar(tolower(VAR))不清楚您想要什么。您的循环可以很容易地 重写: std::transform( var.begin(), var.end(), var.begin(), []( char ch) { tolower( static_cast<unsigned char>( ch ) ); } ) 比lambda的形式更清晰、更简单 表情。) 请注意,我已经消除了您未定义的行为 建议:不能直接调用一个参数

我有一个关于“捕获输出”的问题<代码>putchar(tolower(VAR))不清楚您想要什么。您的循环可以很容易地 重写:

std::transform(
    var.begin(), var.end(),
    var.begin(),
    []( char ch) { tolower( static_cast<unsigned char>( ch ) ); } )
比lambda的形式更清晰、更简单 表情。)

请注意,我已经消除了您未定义的行为 建议:不能直接调用一个参数
tolower

使用
char
而不会产生未定义的行为。

听起来您需要做的是在Windows和Linux中使用
getch()
getche()
,您可以使用中描述的方法。有了这个,你可以从标准输入中获得字符输入,无论是否有对标准输出的回音。

你可能想看看“管道”我不太清楚你的意思-你到底不想打印什么?如果你不想打印,为什么要使用putchar?谢谢,我注意到这不是我想要的,哈哈。@zennehoy我支持你。但是我认为
c++
世界上的人喜欢把事情复杂化。J/KONE评论,独立于问题:在C++循环中有一个几乎通用的约定,即所有的上限都是为宏保留的(可能有一个字符模板参数除外)。不要对变量使用所有的大写。我正在对其他内容使用
getch()
)无论如何,谢谢你。
std::transform(
    var.begin(), var.end(),
    var.begin(),
    []( char ch) { tolower( static_cast<unsigned char>( ch ) ); } )
std::transform( var.begin(), var.end(), var.begin(), ToLower() );