C++ 在编译过程中 strtok 函数 Eclipse 说没有在范围内声明?

C++ strtok function during compile Eclipse says not declared in scope?

本文关键字:范围内 声明 Eclipse 编译 过程中 strtok 函数 C++      更新时间:2023-10-16

我正在练习一些C++但我在拆分用户输入时遇到问题。我正在使用 eclipse ide 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" 
..srcstasd.cpp: In function 'int main()':
..srcstasd.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)

我在这里举了一个例子:http://www.cplusplus.com/reference/cstring/strtok/而且我不明白为什么函数调用不在范围内错误。

你包括<string>,而strtok<string.h><cstring>的一部分。

看 包括字符串或字符串。 对于这些之间的差异。