Я создал автоматический вводный бот, который имитирует символы строки, заданные пользователем.Как ввести строку, содержащую ' n' в ней
Мой код заключается в следующем:
printf("Enter speed (wpm) (1 to 11750):");
scanf("%d", &speed);
if(speed < 1 || speed > 11750)
{
printf("\nPlease provide CORRECT DATA\n");
return -1;
}
printf("Paste the String : \n");
gets(exaArray);
exaArrayLength = strlen(exaArray);
relation = (int)11750/speed;
printf("typing will start in 2 sec-\n");
Sleep(2000);
i=pos=0;
while(i<=exaArrayLength)
{
Sleep(relation);
if((exaArray[pos]>96) && (exaArray[pos]<123)) //small letters
{
keycode=0x41 + (exaArray[pos]%97);
smallLetter(keycode); //function for key simulation
}
.....
Я принимаю вход с использованием получает функцию. Эта программа отлично работает, когда я вставляю текст, который не содержит Enter. Таким образом, эта программа отлично работает с одним абзацем. Но если пользователь предоставляет более одного абзаца, он имитирует только первый абзац.
Потому что gets
заканчивается на '\ n'. Какая функция может принимать несколько абзацев и назначать их строке.
Петля вокруг функции чтения, объединяя то, что было прочитано до сих пор. – alk
OT: Aaand do *** нет *** используйте 'gets()', но вместо этого используйте 'fgets()'. – alk
@alk sir, если я использую input как это - fgets (s, 20000, stdin); не будет ли этот оператор завершаться, если есть ввод или \ n в пользовательском вводе? –