【发布时间】:2021-10-25 18:25:19
【问题描述】:
while(!Info.eof()) {
std::getline(Info, line,'\r');
char a[line.length()];
char things[]= ":.\n\0";
for(int i=0;i<sizeof(a); i++) {
a[i]= line[i];
}
ptr = strtok(a, things);
ptr = strtok(nullptr,things);
while (ptr!= nullptr) {
ptr = strtok(nullptr,things);
std::cout << ptr << std::endl;
}
Info 是ifstream 输入文件。线是一个字符串。当我cout << line 它显示一切都没有问题时,问题是我需要带走除了所需的字符串和 int 之外的所有东西,我已经这样做了,但前两行没有显示。当我第一次执行它时,它显示了所有内容,昨天它跳过了第一行,今天跳过了前两行。我想这与记忆或看不见的东西有关,我需要帮助,谢谢。
【问题讨论】:
-
代码中有很多错误。在循环和 VLA 中查找 .eof()。
-
我有点迷茫该怎么办
-
如果迷路了,放弃字符数组,使用
std::string。请参阅std::string::find()和std::string::substr()。
标签: c++ arrays memory char strtok