gpt4 book ai didi

C++ 和 printf - 奇怪的字符输出

转载 作者:可可西里 更新时间:2023-11-01 18:08:25 25 4
gpt4 key购买 nike

我是 C++ 的新手,但不是 Java、C#、JavaScript 和 VB。我正在使用 Visual Studio 2010 中的默认 C++ 控制台应用程序。

在尝试执行 printf 时,我得到了一些奇怪的字符。每次都不一样,这告诉我每次运行时他们可能会查看不同的内存位置。

代码:

#include "stdafx.h"
#include <string>

using namespace std;

class Person
{
public:
string first_name;
};

int _tmain(int argc, _TCHAR* argv[])
{
char somechar;
Person p;
p.first_name = "Bruno";

printf("Hello %s", p.first_name);
scanf("%c",&somechar);
return 0;
}

最佳答案

问题是 printf/scanf 不是类型安全的。您正在提供一个 std::string 对象,其中 printf 需要一个 const char*

解决这个问题的一种方法是编写

printf("Hello %s", p.first_name.c_str());

但是,由于您使用 C++ 编写代码,因此优先使用 I/O 流而不是 printf/scanf 是个好主意:

std::cout << p.first_name << std::endl;
std::cin >> c;

关于C++ 和 printf - 奇怪的字符输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com