C++ 如何使用scanf和C++;
我已经尝试了大多数字符串和字符格式类型,但它们都不起作用,我不知道为什么。这是我的密码:C++ 如何使用scanf和C++;,c++,xcode,C++,Xcode,我已经尝试了大多数字符串和字符格式类型,但它们都不起作用,我不知道为什么。这是我的密码: #include <iostream> #include <stdio.h> using namespace std; int main(int argc, const char * argv[]) { // insert code here... string string2; string string; cout << "Hel
#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);
}
#包括
#包括
使用名称空间std;
int main(int argc,const char*argv[]
{
//在这里插入代码。。。
弦2;
字符串字符串;
cout您正在显示的内容(scanf(“%s”,&string);
)不起作用(并且永远不会起作用,例如,通过提供不同的格式说明符)
与%s
格式说明符一起使用的scanf()
需要相应的char*
指针引用原始char[]
array以接收参数列表中读取的数据。不过,您在示例中传递的std::string
指针不会自动转换到内部管理的std::string
实例char[]
缓冲区
你可以试着用它来代替,但我不建议你这么做,除非你非常确定自己在做什么
因为你最好使用std::cin
和
std::istream&operator>>(std::istream&,const std::string&)
相反:
std::cout输入;
(顺便说一句,这与您的问题无关!)您正在显示的内容(scanf(“%s”,&string);
)不起作用(并且永远不会起作用,例如,通过提供不同的格式说明符)
与%s
格式说明符一起使用的scanf()
需要相应的char*
指针引用原始char[]
array以接收参数列表中读取的数据。不过,您在示例中传递的std::string
指针不会自动转换到内部管理的std::string
实例char[]
缓冲区
你可以试着用它来代替,但我不建议你这么做,除非你非常确定自己在做什么
因为你最好使用std::cin
和
std::istream&operator>>(std::istream&,const std::string&)
相反:
std::cout输入;
(顺便说一句,这与你的问题无关!)你不应该将std::cout
与::printf
混在一起。更喜欢使用stdio
中的over C函数
您的代码应该有点像这样:
#include <iostream>
int main()
{
std::string string2;
std::string other_string;
std::cout << "Hello, World!\n";
std::cout << "Hi my name is Josh " << string2 << '\n';
std::cin >> other_string;
std::cout << "hi " << other_string;
}
#包括
int main()
{
std::string2;
std::字符串其他_字符串;
std::cout您不应该将std::cout
与::printf
混合使用。更喜欢使用stdio
中的over C函数
您的代码应该有点像这样:
#include <iostream>
int main()
{
std::string string2;
std::string other_string;
std::cout << "Hello, World!\n";
std::cout << "Hi my name is Josh " << string2 << '\n';
std::cin >> other_string;
std::cout << "hi " << other_string;
}
#包括
int main()
{
std::string2;
std::字符串其他_字符串;
STD:Case> SCANF< <代码> %S/<代码>格式说明符需要匹配的字符数组参数,而不是<代码> STD::String 。一般来说,C和CPP样式的混合不是好主意。正如已经提到的,您应该使用STD::CIN。如果您正在读取一个字符串,比如“Joh姓氏”,可以考虑CIN。GETLIN()如果您真的想使用SCANF,那么请考虑sSCANF。使用<代码> STD::GETLIN(STD:CIN,StRIG2)格式说明符需要匹配的字符数组参数,而不是<代码> STD::String 。C和CPP样式的混合一般不是好主意。正如已经提到的,您应该STD::CIN。如果您正在读取一个字符串,比如“Joh姓氏”,可以考虑CIN。GETLIN()。如果您真的想使用SCANF,那么请考虑sSCANF。使用<代码> STD::GETLIN(STD:CIN,StRIG2);< /代码>