在文本文件C ++中查找字符串

时间:2017-12-17 15:19:41

标签: c++ string

出于某种原因,无论我写什么文字作为输入,该程序将始终返回Succes,即使它不在.txt中的用户列表中,每个用户列表分别为' \ n& #39;

我的主要问题是" char b [20];的strcpy(B,inputUser); "线。如果我对它进行评论,程序将严重打印inputUser,甚至认为该行与其余代码没有任何关系(计划用它来剪切用户输入的' \ n') / p>

#include <iostream>
#include <cstring>
#include <string>
#include <fstream>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

int main()
{
    bool found=0;
    int txtFD=open("users.txt",O_RDONLY);

    char letter[2]; strcpy(letter,"");
    char user[20]; strcpy(user,"");
    char inputUser[20]; strcpy(inputUser,"");

    read(0, inputUser,20);
    char b[20]; strcpy(b,inputUser);

    while( read(txtFD, letter, 1) && found==0 )
    {

        if(letter[0] == '\n')   //am citit un user intreg, vad daca asta e
        {
            strcat(user,letter);
            if( strstr(inputUser, user) == 0 )
            {
                cout<<"am gasit "<< inputUser <<" in lista.\n";
                found=1;
            }
            strcpy(user,"");
        }
        else
        strcat(user,letter);

    }

    if(found)
        cout<<"Succes!\n";
    else cout<<"Failure!\n";


}

0 个答案:

没有答案