我正在练习一些C ++,但无法拆分用户输入。我正在将Eclipse 2020-03与mingw32-gcc-g ++-bin 9.2.0-1一起使用。下面是我的代码,
#include <iostream>
#include <string>
using namespace std;
int main() {
string orderbook_symbol[500000][8]; //orderid, ordertime, symbol, buy/sell, qty, price, exp time, strike
string user_order;
char * pch;
string done= "done trading";
while(user_order.compare(done) != 0) {
cin >> user_order;
pch = strtok(user_order," ");
}
}
当我点击编译时,我看到此错误:
23:22:06 **** Incremental Build of configuration Debug for project stasd ****
Info: Internal Builder is used for build
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\stasd.o" "..\\src\\stasd.cpp"
..\src\stasd.cpp: In function 'int main()':
..\src\stasd.cpp:26:9: error: 'strtok' was not declared in this scope; did you mean 'strtol'?
26 | pch = strtok(user_order," ");
| ^~~~~~
| strtol
23:22:06 Build Failed. 1 errors, 0 warnings. (took 560ms)
I took the example here: http://www.cplusplus.com/reference/cstring/strtok/ and i don't understand why a function call is getting not in scope error.
You're including
<string>
, whereasstrtok
is part of<string.h>
or<cstring>
.See include string or string.h for the differences between these.