C:来自用户的未知输入
我希望从C中的用户处获得输入。有两个选项:C:来自用户的未知输入,c,input,scanf,C,Input,Scanf,我希望从C中的用户处获得输入。有两个选项: char然后int(scanf(“%c,%d”,&mychar,&myint)) 或字符串 我的问题是,如果我不知道用户要输入什么-字符串或char/int组合,如何检查用户输入行。谢谢 输入带有fgets的字符串,然后在其上尝试sscanf,并检查结果是否成功/失败。如果您得到2,则表示您已成功读取一个字符和一个整数。如果您得到任何其他信息,sscanf无法读取您指定的格式,请使用原始字符串 您甚至可以读取格式%c,%d%c”(别忘了给它一个char
char
然后int
(scanf(“%c,%d”,&mychar,&myint)
)
或字符串
我的问题是,如果我不知道用户要输入什么-字符串或char/int组合,如何检查用户输入行。谢谢 输入带有
fgets
的字符串,然后在其上尝试sscanf
,并检查结果是否成功/失败。如果您得到2
,则表示您已成功读取一个字符和一个整数。如果您得到任何其他信息,sscanf
无法读取您指定的格式,请使用原始字符串
您甚至可以读取格式
%c,%d%c”
(别忘了给它一个char变量来读取第三个参数),以便查看字符和整数是否都存在,以便进行严格的错误检查:“x,18trashtrash”
将使sscanf
返回3
,而一个漂亮的“x,18”
将为您提供2
输入带有fgets
的字符串,然后在其上尝试sscanf
,并检查结果是否成功/失败。如果您得到2
,则表示您已成功读取一个字符和一个整数。如果您得到任何其他信息,sscanf
无法读取您指定的格式,请使用原始字符串
您甚至可以读取格式
%c,%d%c”
(别忘了给它一个char变量来读取第三个参数),以便查看字符和整数是否都存在,以便进行严格的错误检查:“x,18trashtrash”
将使sscanf
返回3
,而一个漂亮的“x,18”
会给你2
但是如果是“c,c”,我不也会得到2吗?在我的情况下,我没有a,所以如果我读取“%c%d%c”,任何字符串输入都会得到2,不是吗?否,因为sscanf
将拒绝使用%d
读取第二个c
;所以你会得到1
(为了正确阅读%c
),但是如果是“c,c”,我不也会得到2吗?在我的情况下,我没有a,所以如果我读取“%c%d%c”,任何字符串输入都会得到2,不是吗?否,因为sscanf
将拒绝使用%d
读取第二个c
;因此,您得到1
(为了正确阅读%c
)是否真的有一个逗号,
作为第二个输入字符?是否真的有一个逗号,
作为第二个输入字符?