作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经尝试了大多数字符串和字符格式类型,但它们都不起作用,我也不知道为什么。这是我的代码:
#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()
相反,但我不会真正推荐这样做,除非您非常确定自己在做什么。
对于 c++你最好使用 std::cin
和std::istream& 运算符>>(std::istream&, const std::string&)
相反:
std::cout << "Put in string value:" << std::endl;
std::string input;
std::cin >> input;
(xcode 与您的问题无关!)
关于c++ - 如何在 C++ 中使用 scanf 扫描字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716357/
我是一名优秀的程序员,十分优秀!