我正在使用 fgets 从文件中读取以下行:
#C one two three four five six seven eight nine ten eleven
每个单词(#C 除外)都是一个列标题。所以我的文件中有十一列。
我的目标是将这条线分成每个单词的标记。另外,我需要计算一下有 11 个列标题。(列标题可以多于或少于 11 个)
我的问题是这一行末尾的空格。这是我正在使用的代码:
while(1){
fgets(buffer,1024,filename);
if (buffer[1] == 'C'){
char* str = buffer+2;
char* pch;
pch = strtok(str," ");
while(pch != NULL){
pch = strtok (NULL, " ");
if (pch == NULL)break; //without this, ncol contains +1 the
//amount of columns.
ncol++;
}
break;
}
}
这段代码给了我 ncol = 11。并且工作正常。(请注意,我正在阅读的行尾有一个空格)
但是,如果我在行尾没有空格,那么它会给出 ncol = 10 并且不会读取最后一列。
我的目标是让 ncol =11 不管结尾是否有空格。我只想读最后一个单词,检查是否还有单词,如果没有,则退出。