2013-07-27 126 views
0

我有以下代码:为什么我的输出包含0?

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    int xxx; 

    cout << "Enter an integer: 2011 "; 

    cin >> xxx; 

    cout << "Enter your name: John " ; 
    string yyy; 
    cin >> yyy; 

    cout << yyy << "entered" << xxx << endl; 

    return 0; 
} 

我预期的输出是:

输入一个整数:2011输入您的名字:约翰·约翰进入2011

但是我得到了以下的输出:

输入一个整数:2011输入您的名字:约翰entered0

  • 为什么我没有得到预期的输出?

  • 0从何而来?这似乎有点随意我

而且有点不同的问题,这可能已经回答了前:

  • 如果我想我的输出要整齐有序,如下图所示,如何我会这样做吗?即我需要添加哪些代码?

输入您的整数:2011

输入你的名字:约翰

约翰进入2011

+0

很抱歉,不能告诉第一个和第二个输入示例之间的区别。你在做什么不同? –

+0

为了阐明,在运行代码时,是否向行输入了任何内容?即当第一个查询出现时(输入整数:2011),是否实际输入了整数? – asuprem

回答

3

键入有一些事情不清楚你的代码和解释。我会尽可能地澄清和解释。

首先,我运行它时程序工作正常。有一些美学问题,但我们现在会忽略它。

所以,你已经掌握了I/O的基础知识。当你使用cout时,它输出一些东西,当你使用cin时,它是一个输入操作符。因此,你必须输入的东西,它的工作,如下面的例子中:

​​

应该出现在控制台什么:

>Enter an integer: _ 

(下划线光标)。然后你应该输入一个整数

>Enter an integer: 231 

然后,按下回车键后,你输入的整数231存储在XXX中。在这里,我要停下来问问,究竟是什么在你的代码“2011”的原因:

cout << "Enter an integer: 2011 "; 

如果你认为这是输入,其实不然。运行后,必须在控制台窗口中手动编写一些内容。如果是别的东西,它会让人分心,并且......没用。

相同的原理适用于字符串组件。如果你需要我澄清,请让我知道。

此外,你真的应该使用空格来清除你的输出。你的输出文本是根据显示:

cout << yyy << "entered" <<< xxx; 

相反,你应该使用:

cout << yyy << " entered " << xxx; 

这给出了一个更简洁的输出,你可以阅读,即

>Johnentered231 

>John entered 231 

基于您的评论

这里有一些链接,让你开始:

语言: C++ Tutorial (follow them sequentially!)

编译BloodShed Dev Visual Studio (C++ and more)

+0

哦,我明白了。这听起来很合理。不过,我目前正在使用此网站:http://www.compileonline.com/compile_cpp_online.php。在这里,我没有得到>输入一个整数:_,我做错了什么或对你来说也是如此? – user14445

+0

好的,我认真地建议使用编译器而不是在线编译器。有几个,包括Visual C++ Express(免费),Bloodshed Dev和Borland。如果你认真学习并开始,我赞赏它,但最好用适当的工具来完成。在线编译器似乎不接受输入。 – asuprem

+0

是的,我同意100%,但可悲的是我遇到了我的C++ express问题(正如你在上一个问题中看到的那样)。但因为这不是这个问题的真正组成部分,所以请+1。如果你只能说明它为什么说输入0(不是很重要,只是为了感兴趣),我会接受你的答案。 – user14445

0

你的节目,我工作得很好。另外,为了整齐地组织你的输出,使用空格和控制字符。如果你希望你的输出更好看,我建议改变你的程序的输出行:

cout << yyy << " entered " << xxx << endl; 

注意周围使用空格的“进入”。另一件让我误解你的代码的事情是你缺少变量的描述性名称。给他们一些有意义的。例如,将“xxx”更改为“number”,将“yyy”更改为“name”。从长远来看,它会为您节省很多麻烦。

+0

你在用什么IDE? – user14445

+0

我的IDE是Code :: Blocks,但重要的是编译器。我使用MinGW和GCC 4.8.1。 –

0

我认为你在cout和cin之间感到困惑。 cout仅用于输出。在cout之后写cin并且不给它任何输入不会取值“John”。

例如,

cout << "Enter an integer: 2011 "; 

cin >> xxx; 

应该

cout << "Enter an integer: "; 

cin >> xxx; 

,那么你在2011年

相关问题