发布网友 发布时间:2022-03-29 19:11
共7个回答
热心网友 时间:2022-03-29 20:40
如果你用的是vc 6.0以后的版本,而且文件名后缀保存为cpp的话,那么它不支持 <stdio.h> (这是C语言的标准头文件)
应该写成 <cstdio> (这才是C++的标准头文件),并且在前面加上一句
using namespace std;// 或者你在string,printf前面都加上" std:: "
#include <cstdio>
#include <string>
using namespace std;
int main()
{
string str="hello";
printf("%s", str.c_str()); // 或者写 cout << str;
return 0;
}
// 也可以这样写:
#include <cstdio>
#include <string>
int main()
{
std::string str="hello";
std::printf("%s", str.c_str()); // 或者写 std::cout << str;
return 0;
}
以上代码通过了vc2008和g++测试
其中vc2008的cl.exe版本为:
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 15.00.30729.01 版
g++版本为:
g++ (GCC) 4.6.1 Copyright (c) 2011 Free Software Foundation, Inc.
热心网友 时间:2022-03-29 21:58
#include <stdio.h>
#include <string>
using namespace std; // add this line
int main() // modify
{
string str="hello";
printf("%s,没问题啊",str.c_str()); //需要将string对象转换为c风格字符串才行。或者直接用cout
return 0; // add this line
}
热心网友 时间:2022-03-29 23:33
在main()上面增加一行:
#include <stdio.h>
#include <string>
using namespace std; // add this line
main()
热心网友 时间:2022-03-30 01:24
试试
char str[]="hello";//我用是c和c++的定义,不需加
//#include <string> 把他注释掉
return 0;//在最后加上
热心网友 时间:2022-03-30 03:32
#include <string>
后面加上
using namespace std;
然后printf("%s,没问题啊",str);后面加上return 0;
热心网友 时间:2022-03-30 05:57
#include <string>这个应该是用的c++里面的库,所以要加上using namespace std;
热心网友 时间:2022-03-30 08:38
在main()上面增加一行:
#include <stdio.h>
#include <string>
using namespace std;