海鱼ccc 发表于 2023-3-22 12:39:42

printf("请输入明文:");

#include <stdio.h>

int main()
{
      int ch;

      printf("请输入明文:");//这里为什么不需要scanf函数??

      while ((ch = getchar()) != '\n')
      {
                if (ch >= 'a' && ch <= 'z')
                {
                        putchar('a' + (ch - 'a' + 3) % 26);
                        continue;
                }

                if (ch >= 'A' && ch <= 'Z')
                {
                        putchar('A' + (ch - 'A' + 3) % 26);
                        continue;
                }

                putchar(ch);
      }

      putchar('\n');

      return 0;
}

isdkz 发表于 2023-3-22 12:42:39

这段程序是一个简单的凯撒密码加密程序,其原理是将输入的明文按照一定规律进行移位操作,从而得到密文。

在这段程序中,确实没有使用scanf函数来获取输入的明文,而是使用了getchar函数来逐个读取用户输入的字符。这是因为这个程序的设计思路是逐个处理用户输入的字符,并在处理完毕后立即输出,而不是先将所有输入的字符读入到一个缓冲区中,再逐个处理和输出。

另外,getchar函数和scanf函数的用法类似,都是从标准输入(stdin)中读取字符。不同之处在于,getchar函数每次只能读取一个字符,而scanf函数可以读取多个字符,并且可以根据格式化字符串指定读取的类型。在这个程序中,由于只需要读取单个字符并进行加密处理,因此使用getchar函数更为简便。
页: [1]
查看完整版本: printf("请输入明文:");