#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 为什么会报错?
天蓬老师2017-04-17 11:09:36
NEWAPPPATH.substr NEWAPPPATH為char[]數組,不支持.操作; 可以修改為NEWAPPPATH string("C:QQQQ.exe") 試一下。
黄舟2017-04-17 11:09:36
整個程序都錯的離譜,而不光是define的問題了
C 的原生字符串是沒有成員函數的
宏定義結尾不要分號
#define NEWAPPPATH std::string("C:QQQQ.exe")
#define VALOPEN NEWAPPPATH.substr(0,NEWAPPPATH.findlast_of(''))
這樣能讓編譯器勉強執行過去