c++中scanf的表示是啥[关闭]

Posted

技术标签:

【中文标题】c++中scanf的表示是啥[关闭]【英文标题】:What is the representation of scanf in c++ [closed]c++中scanf的表示是什么[关闭] 【发布时间】:2013-12-30 08:34:14 【问题描述】:

我是 C++ 的初学者,我想知道 scanf("%c",&c) 在 C++ 中,任何人都请告诉我如何在 C++ 中编写此语句enter code here??

【问题讨论】:

在我投票结束时看到这个cin 请看Here。也许您需要访问How to ask on Stack overflow。 Why am I downvoted ? 顺便说一句,scanf 也可以在 c++ 中工作... 【参考方案1】:

scanf("%c", &c) 在 C++ 中的等效表示是 scanf("%c", &c)。 C++ 与大多数 C 非常兼容 - 您可以使用 mallocscanfprintf 等。

但是,如果你想遵循 C++ 的真正精神,你应该以面向对象的方式去做:

#include <iostream>

int main(int argc, char * argv[])

    char c;
    std::cin >> c;

    return 0;

这个解决方案的主要缺点是,如果你真的想知道std::cin &gt;&gt; c 背后的内容,你必须学习自动分类分配链式调用操作符重载

无论如何,在你的情况下,找一本关于 C++ 的好书或写得很好的教程,它涵盖了这种语言的基础知识,这似乎是一件好事。在 SO 上询问有关此类基础知识的问题不会学到很多东西。

还有更多细节需要考虑:

std::cin&gt;&gt;c; 不等于 scanf("%c", &amp;c);operator&gt;&gt; 会跳过前导空格,但scanf("%c"... 不会,所以如果用户输入s,scanf 调用会将' ' 读入c,但&gt;&gt; 会读入's' c。您可以使用 noskipws 操纵器来更改它,因此:std::cin &gt;&gt; std::noskipws &gt;&gt; c; 将(至少更接近)等效于 scanf 调用。 (感谢Jerry Coffin的评论)

【讨论】:

std::cin&gt;&gt;c;等同于scanf("%c", &amp;c);operator&gt;&gt; 将跳过前导空格,但 scanf("%c"... 不会,因此如果用户输入 `s, the scanf` 调用会将 ' ' 读入 c,但 &gt;&gt; 会将 "s" 读入c。您可以使用 noskipws 操纵器来更改它,因此:std::cin &gt;&gt; std::noskipws &gt;&gt; c; 将(至少更接近)等效于 scanf 调用。 @JerryCoffin 您真的确定吗,我们应该深入研究这些细节,以回答那些对 C++ 一无所知或了解最少的人?我将首先解释为什么批处理脚本样式 cin &gt;&gt; c 在 C++ 中完全有效,然后可能会详细介绍此运算符重载。 @JerryCoffin 顺便说一句,我敢打赌,这个问题的真正意思应该是“在 C++ 中从用户获取数据的等价物是什么”,而不是“什么是 scanf 函数的精确等价物C++”。 如果我们真的必须了解很多细节,并且我们对 OP 的意图和经验水平非常有把握,那么您可能是对的。但这些都不是真的。 @JerryCoffin 如果我们不确定 OP 的经验水平,我们不能假设他已经足够先进,可以利用您的评论,是吗?尤其是当他写explicite:“我是C++的初学者”【参考方案2】:

scanf("%c",&amp;c) 的等价物是c = cin.get();

写语句可以用cout,例如cout &lt;&lt; "enter code here";

【讨论】:

【参考方案3】:
#include <iostream>

using namespace std; 
    int main()
     int i;
      cout << "enter code here: ";
      cin >> i;

【讨论】:

std::coutusing namespace std; 也可以 @Spook :添加并感谢您的建议..!! 查看我对 Spook 答案的评论——这里也是如此。

以上是关于c++中scanf的表示是啥[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中,动态分配单个类的最佳方法是啥? [关闭]

在 C++ 中处理没有操作系统依赖的消息的方法是啥? [关闭]

Windows 上最好的免费 C++ 分析器是啥? [关闭]

在 C++ 中声明实例变量而不构造它们的好方法是啥? [关闭]

案例扬声器的 C++ 命令是啥? [关闭]

用 C++ 解析/编写 CSV 的首选库是啥? [关闭]