C ++初学者,需要指导

时间:2014-02-18 21:39:46

标签: c++

我是一名c ++初学者,我很好奇为什么这不起作用:

#include <iostream>

using namespace std;
int main ()
{
    int firstname;
    int lastname;

    cout << "My name is " << firstname << lastname;
    cin >> firstname >> lastname;
    cout << endl;

    return 0;

}

我希望输出只是用户输入他们的名字和姓氏的地方,结果如下:

实施例: 我的名字是John Doe。

8 个答案:

答案 0 :(得分:9)

#include <string>

...

string firstname;
string lastname;

int值包含数字。要存储名称,请使用string s。

cin >> firstname >> lastname;
cout << "My name is " << firstname << " " << lastname;

然后确保在打印之前阅读这些名称。应该交换cincout。我还在两个变量之间的打印输出中添加了一个空格(" ")。

答案 1 :(得分:1)

    #include <iostream>
    #include <string>  // so you can use string

    using namespace std;

    int main() {
   string first;
   string last;
   cin >> first;
   cin >> last; // getting input from using and storing it in last
   cout << "My name is " << first << last << endl; // printing out "My name is and " and what you wrote for first and last
return 0;
}

答案 2 :(得分:0)

cout << "My name is ";
cin >> firstname >> lastname;
cout << firstname << " " << lastname;

这应该输出一行:

我的名字是John Doe

另外,字符串存储在string类型中,而不是int类型

所以你必须include <string>,并将int更改为string

答案 3 :(得分:0)

名称可以是int类型,将其更改为std::string

以下是修改后的代码将根据需要生成输出。

#include <iostream>

int main ()
{
    std::string firstname;
    std::string lastname;

    std::cin >> firstname >> lastname;
    std::cout << "My name is " << firstname<<" " << lastname<<"\n";

    return 0;

}

请注意,如果您的名字和姓氏之间有空格,则必须在打印时添加" "

如果您的字符串也包含空格,请尝试使用'getline(cin,str);进行输入。

我建议您在编写代码时不要使用标准命名空间,即using namespace std;。有关详细信息,请查看下面提供的链接

Why is "using namespace std" considered bad practice?

答案 4 :(得分:0)

首先,我会尝试提示用户输入他们的名字和姓氏。或者他们怎么知道要进入什么?并且使用int类型根本没有帮助,因为用户将输入字符串而不是整数。试试这个......

#include <iostream>
using namespace std;

int main() {

cout << "Pleas enter your first and last name." << endl;
string name;
cin >> name;

cout << "Hello " << name << endl;

return 0;
}

答案 5 :(得分:0)

确保用户知道要输入的内容(名字和姓氏),否则他们将不知道输入什么。这是您可以使用的输出代码:

import os
import csv

# Save the IPs you want to ping inside YOURFILE.csv
# Then iterate over the CSV rows using a For Loop
# Ensure your ip addresses are under a column titled ip_address
with open('YOURFILE.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        rep = os.system("ping " + row['ip_address'] + " -c 3")

所以完整的代码应该是这样的:

cout << "Please enter your first and last name." << endl;

答案 6 :(得分:0)

你在做

int firstname;
int lastname;

表示要获取整数值,但是需要一个字符串。因此,根据您的情况,将int替换为std::stringstring。另外,请记住使用#include <string>来获得string功能。完成此操作后,您应该能够输入和返回字母。 :D

#include <iostream>
#include <string>

using namespace std;
int main ()
{
    string firstname;
    string lastname;

    cout << "My name is " << firstname << lastname;
    cin >> firstname >> lastname;
    cout << endl;

    return 0;

}

我可能会补充说,您通常不应该使用using namespace std;,因为它被认为是不好的做法,也没有必要,您可以键入std::...。如果不想每次都键入using namespace std名称,则使用namespace,但是通常最好区分要使用相同名称但在不同namspace中使用的函数类型。并也使用'\n'作为新行,而不是endl。这是因为endl\n花费更多的时间。

答案 7 :(得分:-1)

如果您是初学者,我建议在您的代码中也包含命名空间。在像打印字符串这样的简单情况下,如果您正在学习包含 std::stringstd::cinstd::cout,这是一种更好的做法。在这种情况下,:: 只是意味着从其命名空间(左值)中获取关键字(右值)。