开发者

Reading CR terminated keyword text file

开发者 https://www.devze.com 2023-04-03 07:41 出处:网络
I want to read a list of keywords from a (text) file and then add those in a CString array in C. The trouble is that, I am reading the file line by line, and the file contains one word in every line.

I want to read a list of keywords from a (text) file and then add those in a CString array in C. The trouble is that, I am reading the file line by line, and the file contains one word in every line. I can successfully populate the array, but when I try to look up these keywords in another string, it returns false because I am guessing the keyword has \n at the end.

Another way I could read the file could be, to make the text file a comma separated file, and read one line and tokenize it. But then, I won't know how to read a line whose s开发者_Go百科ize can be VERY large, as the list of keyword is ever expanding.

Saad Rehman


If your problem is that a string may have a rogue newline at the end, you can use:

size_t len = strlen (mystring);
if (len > 0)
    if (mystring[len-1] == '\n')
        mystring[--len] = '\0';

Do this to mystring after you've read it in but before you use it.

It simply checks if the last character is a newline and, if so, replaces it with a string terminator.

The first check is to ensure you don't try this on an empty string where mystring[-1] would invoke the dreaded undefined behaviour.

0

精彩评论

暂无评论...
验证码 换一张
取 消