出于某种原因,无论我写什么文字作为输入,该程序将始终返回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";
}