我们正在执行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/