很好的一天,
我有以下代码:
43 while (TRUE)
44 {
45 printf("Swipe Card: ");
46 scanf("%s;%s=%s", id, banner, cp);
47 printf("%s\n%s\n%s\n", id, banner, cp);
48 ProcessStudent(banner, file);
49
50 }
我已经动态地分配了
id
、banner
和cp
,但是当我试图打印它们(我只是为了检查它们的内容)时,所有的东西都只被带到“id”中。我试图读取的字符串如下所示%GRE068?;01540594=000331!
最佳答案
scanf
不尝试对格式字符串进行完整的模式匹配。%s
输入格式只需将所有内容读取到下一个空格(或EOF)。之后,它会查找一个;
,因为它没有发现它没有解析任何其他输入。
如果要在其他字符处停止,请使用[^char]
scanf("[^;];%[^=]=%s", id, banner, cp);
关于c - 用C输入,特殊情况?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36608221/