我已经尝试了大部分字符串和字符格式类型,他们不工作,我不知道为什么。以下是我的代码:
#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);
}
3条答案
按热度按时间vc9ivgsu1#
你所显示的(
scanf("%s",&string);
)不起作用(而且永远不可能,例如,通过给出不同的格式说明符)!与
%s
说明符一起使用的scanf()
需要一个引用原始char[]
数组的对应char*
指针,以接收参数列表中的读取数据。不过,您在示例中传递的std::string
指针不提供对引用的std::string
示例的自动强制转换(内部管理char[]
缓冲区)。您可以尝试改用
&string.front()
,但我并不真正推荐您这样做,除非您非常确定自己在做什么。对于c++,最好使用
std::cin
和改为
std::istream& operator>>(std::istream&, const std::string&)
:(顺便说一句,xcode与您的问题无关!)
omhiaaxx2#
你不应该把
std::cout
和::printf
混在一起。最好使用C++ Standard IO library而不是stdio
中的C函数。您的代码应该看起来有点像这样:
zzoitvuj3#