从文本文件中读取char数组的句子,直到点分隔符

时间:2017-05-07 13:42:54

标签: c arrays

我正在努力将文本文件中的句子读入char数组。

文字档案:

I am working at a gym.
Someone has stolen my 
backpack.
Everybody lies.
Hello
to
everyone.

预期结果(在数组中)

I am working at a gym.
Someone has stolen my backpack.
Everybody lies.
Hello to everyone.

首先,我尝试使用fgets功能打印这些:

FILE* file = fopen("zdania.txt", "r");
char line[256];

while (fgets(line, sizeof(line), file)) {
    printf("%s", line);
}

fclose(file);

return 0;

但这是一个糟糕的解决方案,因为它逐行读取文件,在我的情况下,我必须阅读句子,直到找到点。

我也尝试用getc函数做一些事情,但是当找到点时它会停止。

2 个答案:

答案 0 :(得分:3)

int ch;
while ((ch = fgetc(file)) != EOF) {
    if (ch == '.') {
        /* deal with dot */
    } else {
        /* deal with non dot */
    }
}
/* deal with possibly unfinished data */

答案 1 :(得分:0)

您可以阅读每个const costMin = compare(myArray, 'Cost', (a, b) => a < b); const costMax = compare(myArray, 'Cost', (a, b) => a > b); ,直到找到char。也许使用.而不是fread,并通过char遍历结果数组char以查找fgets。另一种方法是使用.