나는 기본적으로 사용자가 "비밀 단어"선언 한 것이다임의의 최대 값을받지
일부 웹 사이트와 은행 등을 사용하는 보안 조치의 매우 간단한 버전 콘솔 응용 프로그램을 만들려고하고 있어요 (stringBuilder에 저장 됨). 그 후 사용자가 프로그램/웹 사이트 등에 액세스하려고 할 때마다 단어 (X는 무작위로 생성됨)의 문자 X를 입력해야합니다. 그러나 임의의 단어는 단어의 마지막 문자를 선택하지 않습니다.
예 : 2 글자의 시크릿 단어를 사용하면 다른 방법으로 글자를 선택하려고 할 때 첫 번째 글자 만 선택합니다. 전체 응용 프로그램을 던지는 문자 0이 있다고 생각합니다. .
는 왜 마지막 문자는 결코 선택되고 있지?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace randomCharSelecter
{
class Program
{
static void Main(string[] args)
{
StringBuilder stringBuilder = new StringBuilder();
Console.WriteLine("Please Enter Your Secret Word");
stringBuilder.Append(Console.ReadLine());
EnterInput:
Random rndSelect = new Random();
int randomChar1 = rndSelect.Next(1, (stringBuilder.Length));
Console.WriteLine("Please enter character {0} of your secret word", randomChar1);
string userInput = Console.ReadLine();
if (userInput == (Convert.ToString(stringBuilder).Substring(randomChar1 - 1, 1)))
Console.WriteLine("Correct!");
else
{
Console.WriteLine("Incorrect! Please try again");
goto EnterInput;
}
Console.ReadLine();
}
}
}
내가 지금 마법처럼 정말 고마워요 작품, 난 당신이 사용자에게 표시 : – KLM
@KLM 메시지 뭔가가 알았 참조 아, 그리고 내부적으로 데이터를 나타내는 데 사용하는 값은 자주 다릅니다. 개인적으로 C#/.NET은 기본적으로 0부터 시작하는 색인을 사용하기 때문에 0부터 시작하는 인덱싱 접근 방식을 선호합니다. 사용자의 이익을 위해 표시 값을 조정할 것입니다. 그러나 두 가지 해결책 모두 유효합니다. 당신이 더 편한 것을 사용하십시오. –
답장을 보내 주셔서 감사합니다. 이유는 제로 - 기반이 바람직하고 이에 따라 코드를 수정 해 줄 수 있습니다. 입력 해 주셔서 감사합니다. P-S-w-g 그래 바로 코드를 통해 가서로 변경 제로 @ – KLM