我们正在执行Caesar密码,其中第一个ROW是字符数,第二个ROW是加密的消息,第三行是部分正确的答案。

Caesar密码已完成,但是到目前为止,我只能从控制台扫描内容,而不能从实际文件中扫描内容。

问题是,如何扫描数字直到行尾(换行符),并且在行中包含的内容与实际整数(4a4,a44、44a,a)不同的情况下,打印出错误?

最佳答案

fgets()读取,然后解析

char buf[100];
if (fgets(buf, sizeof buf, stdin)) {
  char *endptr;
  long integer_var = strtol(buf, &endptr, 10);
  if (buf == endptr) puts("No conversion");
  else {
    while (isspace((unsigned char) *endptr)) endptr++; // consume trailing white-space.
    if (*endptr) puts("Junk at end");
    else puts("Success");
  }
}

关于c - 将数字扫描到INT变量中,直到换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58783033/

10-11 18:05