#include <stdio.h>
#include <stdlib.h>
#define LIM 30
char * s_gets(char * st, int n);
int main(){
char number[LIM];
char * end;
long value;
puts(Enter a number (empty line to quit):);
while(s_gets(number, LIM) && number[0] != '\0')
{
value = strtol(number, &end, 10); /* base 10 */
printf(base 10 input, base 10 output: %ld, stopped at %s (%d)\n,value, end, *end);
value = strtol(number, &end, 16); /* base 16 */
printf(base 16 input, base 10 output: %ld, stopped at %s (%d)\n,value, end, *end);
puts(Next number:);
}
puts(Bye!\n);
return 0;
}
char * s_gets(char * st, int n){
char * ret_val;
int i = 0;
ret_val = fgets(st, n, stdin);
if (ret_val)
{
while (st[i] != '\n' && st[i] != '\0')
i++;
if (st[i] == '\n')
st[i] = '\0';
else // must have words[i] == '\0'
while (getchar() != '\n')
continue;
}
return ret_val;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。