为什么sprintf只认char a[8]类型,却不认string类型?
运行平台.Windowsconsole平台,特意在DOS平台下用的.代码如下#include<iostream>#include<string>#include<stdi...
运行平台.Windows console平台,特意在DOS平台下用的.
代码如下
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{ //char a[8];//用这个正常运行
string a;//用这个弹出错误
sprintf(a,"123");
printf(a);
return 0;
}
刚初在MFC平台运行,出错,还以为是平台问题,后来换回DOS平台,依然出错,
结论:标题
出错:d:\c++项目\13\13.cpp(8) : error C2664: 'sprintf' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char *' 展开
代码如下
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{ //char a[8];//用这个正常运行
string a;//用这个弹出错误
sprintf(a,"123");
printf(a);
return 0;
}
刚初在MFC平台运行,出错,还以为是平台问题,后来换回DOS平台,依然出错,
结论:标题
出错:d:\c++项目\13\13.cpp(8) : error C2664: 'sprintf' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char *' 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询