84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
#include <iostream> #include <string> using namespace std; int main() { #define NEW_APP_PATH "C:\\QQ\\QQ.exe"; #define VAL_OPEN NEW_APP_PATH.substr(0,NEW_APP_PATH.find_last_of('\\')); cout<<VAL_OPEN; getchar(); return 0; }
用define 为什么会报错?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
NEWAPPPATH.substr NEWAPPPATH为char[]数组,不支持.操作; 可以修改为NEWAPPPATH string("C:\QQ\QQ.exe") 试一下。
因为NEWAPPPATH是一个C字符串,C字符串当然没有substr方法。
整个程序都错的离谱,而不光是define的问题了 C++的原生字符串是没有成员函数的 宏定义结尾不要分号 #define NEWAPPPATH std::string("C:\QQ\QQ.exe") #define VALOPEN NEWAPPPATH.substr(0,NEWAPPPATH.findlast_of('\')) 这样能让编译器勉强执行过去
NEWAPPPATH.substr NEWAPPPATH为char[]数组,不支持.操作; 可以修改为NEWAPPPATH string("C:\QQ\QQ.exe") 试一下。
因为NEWAPPPATH是一个C字符串,C字符串当然没有substr方法。
整个程序都错的离谱,而不光是define的问题了
C++的原生字符串是没有成员函数的
宏定义结尾不要分号
#define NEWAPPPATH std::string("C:\QQ\QQ.exe")
#define VALOPEN NEWAPPPATH.substr(0,NEWAPPPATH.findlast_of('\'))
这样能让编译器勉强执行过去