如何在C ++中显示变量

时间:2013-11-22 00:13:47

标签: c++ c

我最近一直在用C编程,我想知道如何做到这一点:

printf("Hello %s" &username);

在C ++中

cout << "Hello %s" &username;

不起作用。我还是新人,所以很容易。

5 个答案:

答案 0 :(得分:4)

那将是:

cout << "Hello " << username;

不需要传递地址,就像尝试打印指针一样。您也可以通过执行等同于cout << x1 << x2的{​​{1}}链接来电。这是有效的,因为第一次调用的结果返回流,因此您再次使用运算符函数。

链式调用与以下内容相同:

(cout << x1) << x2

答案 1 :(得分:2)

你仍然可以在C ++中使用printf,尽管你必须正确地使用它。

#include <stdio.h>

int main() {
    char username[] = "Slartibartfast";
    printf("User: %s\n", username);
    return 0;
}

然而,正确的“C ++方式”是使用iostream

#include <iostream>
#include <string>

int main() {
    std::string username = "Slartibartfast";
    std::cout << "User: " << username << '\n';
    return 0;
}

C ++流主要使用<<(写入)和>>(读取)运算符,但它们也有自己的成员函数来执行更复杂的操作,并且有一些辅助函数就像阅读整行一样。

#include <iostream>
#include <string>

int main() {
    std::cout << "Enter a username:\n";
    std::string username;
    std::cin >> username;
    if (username.empty()) {
        std::cerr << "Empty username was input. Aborting\n";
        return 1;
    }
    std::cout << "Welcome, " << username << std::endl;
    std::cout << "Tell me what else you'd like this program to do?\n";
    std::string feedback;
    std::getline(cin, feedback);
    std::cout << "Thank you, you typed " << feedback.size() << " characters of input which I will now ignore.\n";
    return 0;
}

一些解释:

std是一个名称空间,大多数C ++标准函数/例程都放在该名称空间中。这有助于避免与用户定义的函数/对象/变量发生冲突。

::表示“属于”,从右到左阅读,std::cin表示cin belonging to std

cin相当于stdin

cout相当于stdout

cerr相当于stderr

endl一个特殊对象,它写一个“\ n”并强制刷新输出缓冲区。

std::getline可让您阅读iostreamstd::string

<<是一个名为operator<<的函数的快捷方式,它接受一个iostream和一个东西,并返回iostream,因此你可以菊花链:

std::cout << "Hello, " << 42 << " days since last " << adjective << " accident\n";

答案 2 :(得分:0)

cout<<"Hello "<<username;

答案 3 :(得分:0)

由于函数重载,您无需指定cout应如何解释传递的内容。基本上,大多数基本类型(operator<<intstring等都会重载char版本。因此你可以简单地写

cout << "Hello " << username;

答案 4 :(得分:0)

cout << "Hello " << username << endl;