gpt4 book ai didi

c++ - 如何在 C++ 中使用 scanf 扫描字符串

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:59 24 4
gpt4 key购买 nike

我已经尝试了大多数字符串和字符格式类型,但它们都不起作用,我也不知道为什么。这是我的代码:

#include <iostream>
#include <stdio.h>

using namespace std;
int main(int argc, const char * argv[])
{

// insert code here...
string string2;
string string;

cout << "Hello, World!\n";
printf("Hi my name is Josh %s\n",string2);
scanf("%s",&string);
printf("hi %s",string);
}

最佳答案

您显示的内容 (scanf("%s",&string);) 不起作用(并且永远不可能,例如通过提供不同的格式说明符)!

scanf()%s 格式说明符一起使用需要相应的 char* 指针引用原始 char[] 数组接收参数列表中读取的数据。您在示例中传递的 std::string 指针不提供对内部管理的 char[] 引用的 std::string 实例的自动转换 以这种方式缓冲。

您可以尝试使用 &string.front()相反,但我不会真正推荐这样做,除非您非常确定自己在做什么。

对于 你最好使用 std::cin
std::istream& 运算符>>(std::istream&, const std::string&)相反:

std::cout << "Put in string value:" << std::endl;
std::string input;
std::cin >> input;

( 与您的问题无关!)

关于c++ - 如何在 C++ 中使用 scanf 扫描字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716357/

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