84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
#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('\'))
这样能让编译器勉强执行过去