将数字扫描到INT变量中,直到换行

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

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

问题是,如何扫描数字直到行尾(换行符),并且,如果该行包含的内容与实际整数(4a4,a44、44a,a)不同,则打印出错误? / p>

lawdragon 回答:将数字扫描到INT变量中,直到换行

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");
  }
}
本文链接:https://www.f2er.com/3131469.html

大家都在问