我有一个C程序,提示输入一个13位整数(长整数)。但是用户可能会意外输入一些字符。如何通过忽略输入中的所有字符来避免崩溃或循环?
答案 0 :(得分:4)
goto 1
,或对您的应用有意义的任何内容答案 1 :(得分:1)
在c中我会这样做:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char str[1000];
int i;
int newLength = 0;
long long l;
scanf( "%s", str );
for ( i = 0; str[i] != '\0'; ++i )
{
if ( isdigit( str[i] ) )
str[newLength++] = str[i];
}
str[newLength] = '\0';
sscanf( str, "%d", &l );
return 0;
}
答案 2 :(得分:0)
您可以使用scanf:
成功时,该函数会成功返回项目数 读。此计数可以匹配预期的读数或更少, 如果匹配失败,则为偶数。