Эй, ребята, я не знаю, где я тут ошибся, когда я впервые пытался использовать int main (int arg c, argv [])… Я просто не знаю, правильно ли я его использую. Вот какой-то код…
- код компилируется должным образом и также дает мне правильный результат
шифрует «BaRFoo» как «FeVJss», используя 4 в качестве ключа запуска журнала. / Цезарь 4 ... отправка ввода BaRFoo ... проверка на вывод "ciphertext: FeVJss \ n" ...
***** НО, вот моя проблема, когда я набираю 2r или 4w или любой без нумерации c ключ дает мне это сообщение: ***
:( обрабатывает нечисловую c тайм-аут ключа в ожидании выхода из программы
Может кто-нибудь сказать мне, как добавить еще одну l oop для этой функции, чтобы получить ключ nummerica для печати в виде ключа -Usage: ./caesar. Пожалуйста? Большое спасибо за помощь и полезный совет.
#include <string.h>
#include <cs50.h>
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main(int argc, string argv[])
{
// Variable declarations
bool keySuccessful = false;
int key = 0;
int input_length = 0;
string text = "" ;
// The number of command line args submitted was incorrect.
do
{
if(argc != 2)
{
printf("Usage: ./caesar key .\n");
return 1;
}
else
{
// Convert ASCII char to a alphabate char
// Access individul char in the string plain
// get the key val and converted to integer
key = atoi(argv[1]);
keySuccessful = true;
printf("%s",argv[1]);
}
}
while(!keySuccessful);
// get user input
text = get_string("%s",text);
printf("ciphertext: ");
input_length = strlen(text);
for (int i=0; i<input_length; i++)
{
// Checking if is the lowercase a=97 to z=112
// Print out lower case with ky a=65 to z=90
if(isupper(text[i]))
{
printf("%c", (((text[i] - 65) + key) % 26) + 65);
}
else if(islower(text[i]))
{
printf("%c", (((text[i] - 97) + key) % 26) + 97);
}
else
{
printf("%c", text[i]);
}
}
printf("\n");
return 0;
}