2011-09-08 54 views
0

我想从一个(文本)文件中读取关键字列表,然后添加那些在C.一个CString阵列麻烦的是,我读一行文件线,文件每行包含一个单词。我可以成功填充数组,但是当我尝试在另一个字符串中查找这些关键字时,它会返回false,因为我猜测最后关键字有\ n阅读CR终止关键字的文本文件

我可以读取该文件的另一种方式可以是,使文本文件中的逗号分隔的文件,读取一行和记号化它。但是,随着关键字列表的不断扩大,我不会知道如何读取尺寸可能非常大的行。

萨阿德·拉赫曼

+0

你如何从档案中读取?提供一些代码.. – duedl0r

回答

0

如果你的问题是一个字符串可能在最后一个流氓换行,你可以使用:

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

这样做是为了mystring您在但在此之前阅读后,你用吧。

它只是检查是否最后一个字符是换行符,如果是,用字符串终止符替换它。

第一次检查是保证你不尝试,这在一个空字符串,其中mystring[-1]将调用可怕未定义的行为。

+0

如果您要重新使用'len',在用空终止符替换'\ n''时更新它可能是一个好主意:例如'mystring [ - len] ='\ 0';'。 – pmg

+0

好点,@ pmg,我通常不这样做,但是,由于它浪费很少(包括努力和源代码),所以我已经采纳了您的建议,以避免其他人可能会这样做。 – paxdiablo

+0

谢谢!工作就像一个魅力:) 虽然我在我自己之前尝试过,并没有工作。我虽然LF和CR由_ \ n_以外的其他东西代表 - 但您的代码完全可以工作。 –