从文本文件中直接读取句子到char数组直到点分隔符
我正在努力将文本文件中的句子读入char数组。从文本文件中直接读取句子到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函数做一些事情,但是当找到点时它会停下来。
int ch;
while ((ch = fgetc(file)) != EOF) {
if (ch == '.') {
/* deal with dot */
} else {
/* deal with non dot */
}
}
/* deal with possibly unfinished data */
谢谢,它工作得很好。无论如何,我有问题与新线处理,我添加了额外的条件,当char等于新行,然后什么都不做,但是现在它在每个下一句中产生额外的列表 –
您可能需要识别两个(或更多)字符的序列并采取不同的行为。在对一个字母进行处理之后,应该对一个空格进行不同的处理,两条换行符应该与另一条新行处理的两倍处理方式不同...... – pmg
好的,但是我怎样才能得到下一个字符就像你一样说吧? –
可以读取每个char
直到.
代替找到。可能使用fread
而不是fgets
,然后通过char查找结果数组char来查找.
。另一种方法是使用strstr()
那么输入“我的IP地址是127.0.0.1”呢? – pmg
是的,这是一个很好的问题... –