向文件追加文本

3

我试图将数据附加到一个文件中,但在检查输入数据是否已经存在于文件中时遇到了问题。如果数据已经存在于文件中,则不会再次添加该数据。有人能告诉我在这种情况下应该做什么吗? 我已经附上了我的代码副本供您参考。谢谢!

void addentry(char* name, char* entry){

ifstream in_file(name);
ofstream out_file(name, ios::app);


out_file << entry << endl;

if(!in_file) {
   cout << "This is the first entry of this person" << endl;
} 


int_file.close();
out_file.close();
}

2
人类如何判断书页上的单词是否被书写? - JohnFilleau
2
简而言之:将文件读入内存。检查所需数据是否已存在。如果存在,则什么都不做;如果不存在,则将其附加到文件中。 - Jesper Juhl
1
正如@JesperJuhl所说,读取文件,但不必要时不要全部读取,例如逐行读取直到找到单词或到达EOF,如果到达EOF则添加。 - bruno
1
https://dev59.com/w3E95IYBdhLWcg3wPrgI - adrien bedel
https://dev59.com/w3E95IYBdhLWcg3wPrgI - adrien bedel
2个回答

2

读取文件数据并计算字符直到文件结束(EOF)。检查计数是否不等于零。如果是,则追加,否则不进行操作。您没有提供完整的代码,否则我会编译然后将代码发送给您。


1
当(!input_file.eof()) { 如果(input_file.get(c)) { 计数++; } } - Pressing_Keys_24_7
1
我已经写了这个,但是当输入文件==条目时,我该如何编写我的代码,然后计数++? - Pressing_Keys_24_7
1
只需要打开文件并开始阅读,然后使用计数器来计算每个字符直到文件末尾。使用while循环。最后检查计数,如果为零则将内容追加/写入文件,否则不执行操作。 - Ankit Mishra
1
您可以有一个字符串缓冲区并从开头开始检查,直到结尾。 如果它匹配第一个字母,则检查该缓冲区的结尾,并使用任何标志具有状态的Chevy,以确定是否找到。 - Ankit Mishra
显示剩余3条评论

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接