读入一个字符串 如果字符串是数字开头的 为什么就读不进去了?
代码如下 为什么结果是这样的?为什么明明输入的是“75BCD15”而读入的确是”BCD15“?怎么能让数字也读进去呢?尝试了scanf和gets两种方法 都不对。。
#include <iostream>
#include <stdlib.h>
#include<cstring>
#include <stdio.h>
using namespace std;
long long int val(char * hex)
{
long long int n = 0;
while (*hex != '\0')
{
n *= 16;
if (*hex >= 'A' && *hex <= 'F')
{
n += *hex - 'A' + 10;
}
if (*hex >= 'a' && *hex <= 'f')
{
n += *hex - 'a' + 10;
}
if (*hex >= '0' && *hex <= '9')
{
n += *hex - '0';
}
hex++;
}
return n;
}
int main()
{
int n,i;
cin>>n;
string a[n];
char input[1000] ;
gets(input);
// scanf("%s",&input);
printf("%s\n",input);
long long int v = val(input);
printf("%lld",v);
// cout<<v<<endl;
return 0;
}