C++;:并非所有值都写入.txt文件 我的程序中有一个用C++编写的bug。它处理两个.txt文件。从一个文件(word.txt)导入值,并且必须过滤并将其添加到另一个文件(text3.txt)中

C++;:并非所有值都写入.txt文件 我的程序中有一个用C++编写的bug。它处理两个.txt文件。从一个文件(word.txt)导入值,并且必须过滤并将其添加到另一个文件(text3.txt)中,c++,C++,在txt文件word.txt中有以下条目: Dora cat 7 John human 28 Bark dog 12 Steven human 56 Rex dog 15 p«b«endl;应按特定顺序将文本从word.txt添加到text3.txt文本文件中。首先每个人都有“人”,然后每个人都有“狗”(不需要加上“猫”) 目前,只有最后一个添加到文件中,即所有“dog”条目 你能帮我弄清楚问题出在哪里吗 #include "stdafx.h" #include <stdio.h&g

在txt文件word.txt中有以下条目:

Dora cat 7
John human 28
Bark dog 12
Steven human 56
Rex dog 15
p«b«endl;应按特定顺序将文本从word.txt添加到text3.txt文本文件中。首先每个人都有“人”,然后每个人都有“狗”(不需要加上“猫”)

目前,只有最后一个添加到文件中,即所有“dog”条目

你能帮我弄清楚问题出在哪里吗

 #include "stdafx.h"
 #include <stdio.h>
 #include<stdlib.h>
 #include <fstream>
 #include <iostream>
 using namespace std;


 char *b;
 char *u;
 char *p;

 int getl(char c[1024],char num[10],char add[10],char ad[10])
 {
    u=&add[0];
    p=&ad[0];
    ifstream u("slovo.txt");
    ofstream p("text3.txt");
    b= &c[0];

    while(u.getline(b,1024))
    {
       if (strstr(b,num))
       {
          p«b«endl;
          cout«b«endl;
       }
    }

    return(0);
 }


 int _tmain()
 {
    char n[1024];
    char str[] ="chelovek";
    char nimi[]="imd";
    char nick[]="omd";
    printf("\nCHELOVEK\n\n");
    getl(n,str,nimi,nick);

    char m[1024];
    char stri[] ="sobaka";
    char nimii[]="omd";
    char nicki[]="amd";
    printf("\nSOBAKA\n\n");
    getl(m,stri,nimii,nicki);
 }
#包括“stdafx.h”
#包括
#包括
#包括
#包括
使用名称空间std;
char*b;
char*u;
char*p;
int getl(字符c[1024],字符数[10],字符添加[10],字符ad[10])
{
u=&添加[0];
p=&ad[0];
IFU流(“slovo.txt”);
流p(“text3.txt”);
b=&c[0];
while(u.getline(b,1024))
{
if(strstr(b,num))
{
p«b«endl;
cout«b«endl;
}
}
返回(0);
}
int_tmain()
{
charn[1024];
字符str[]=“chelovek”;
字符nimi[]=“imd”;
字符nick[]=“omd”;
printf(“\nCHELOVEK\n\n”);
getl(n,str,nimi,nick);
字符m[1024];
char stri[]=“sobaka”;
char nimii[]=“omd”;
char nicki[]=“amd”;
printf(“\nSOBAKA\n\n”);
getl(m、stri、nimii、nicki);
}

谢谢。

两次调用都使用相同的输出文件。所以以前所有人类的记录都被狗的记录所取代。打开文件以在结尾追加时,请使用
std::ios::app

#include <fstream>

std::ofstream out;

// std::ios::app is the open mode "append" meaning
// new data will be written to the end of the file.
out.open("myfile.txt", std::ios::app);

std::string str = "I am here.";
out << str;
#包括
标准:流出流;
//std::ios::app是开放模式“append”的意思
//新数据将写入文件末尾。
打开(“myfile.txt”,std::ios::app);
std::string str=“我在这里。”;

你能正确地缩进你的代码吗?代码似乎与你的问题陈述无关。至少我在代码中找不到任何“狗”或“人”。您只有一个字符而不是两个字符