c中txt的数组(长数字)
400亿;499999999999;签证 5000万;59999999;万事达卡 67000000;67999999;大师 字段:1。射程开始2。范围结束,3个名称 [Start Range]和[End Range]字段的长度可以是1到16个字符(数字) 该方案的目标如下: 第一个输入16位卡号的请求c中txt的数组(长数字),c,arrays,file,C,Arrays,File,400亿;499999999999;签证 5000万;59999999;万事达卡 67000000;67999999;大师 字段:1。射程开始2。范围结束,3个名称 [Start Range]和[End Range]字段的长度可以是1到16个字符(数字) 该方案的目标如下: 第一个输入16位卡号的请求 Card number input, verification and processing use char [n] type (Simbol array) 第二:检查与输入的卡号相对应的条
Card number input, verification and processing use char [n] type (Simbol array)
第二:检查与输入的卡号相对应的条目,如果我输入45000000000,则可以在文本文件中找到该条目。它介于400000000000和499999999之间,因此我需要在autput name VISA中输入一条文本。
我不能用长字体。。。当我不倒立时,我需要使用数组。。。
第三次请求以“nnnn.mm”格式输入金额,其中nnnn-1至4位长的LAT金额,但mm-2位的金额
char input[32]; // = "100;200;first";
char name[10];
int min, max, c, i, k;
FILE *file;
file = fopen("gg.txt","r");
i=0;
while ((c=getc(file))!= EOF)
{
k=(int)c;
input[i]=k;
i++;
}
char* result = NULL;
char delims[] = ";";
result = strtok(input, delims);
// atoi() converts ascii to integer.
min = atoi(result);
result = strtok(NULL, delims);
max = atoi(result);
result = strtok(NULL, delims);
strcpy(name, result);
printf("Min=%d, Max=%d, Name=%s\n", min, max, name);
printf("input=%s\n",input);
printf("%d\n",i);
getch();
return 0;
varunl给我的这段代码使用的是smal数字(gg.txt文件的内容是:100;200;first),但是需要smt,enybody,可以帮助我吗?诀窍在于将数字填充到16位,以便您可以将它们作为字符串进行比较。如果你读到这篇文章:
67000000;67999999;MAESTRO;
事实上,你必须这样考虑:
0000000067000000;0000000067999999;MAESTRO;
用户输入也一样
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void FindCCType(const char *pnumber);
int main(int argc, char *argv[])
{
FindCCType("67000001");
return 0;
}
#define MAXLENGTH 16
char* PadLeft(const char *pnumber)
{
char *pnumber2 = (char*)malloc(MAXLENGTH + 1);
size_t len = strlen(pnumber);
if (len > MAXLENGTH)
{
/* Too many digits in credit card number */
exit(1);
}
strcpy(pnumber2 + MAXLENGTH - len, pnumber);
char *pbegin = pnumber2, *plast = pnumber2 + MAXLENGTH - len;
while (pbegin < plast)
{
*pbegin = '0';
pbegin++;
}
return pnumber2;
}
void FindCCType(const char *pnumber)
{
printf("Input: %s\n", pnumber);
char *pnumber2 = PadLeft(pnumber);
FILE *file = fopen("gg.txt","r");
char pline[1000];
while (fgets(pline, sizeof(pline), file) != NULL)
{
if (strlen(pline) + 1 == sizeof(pline))
{
/* Line too much long */
exit(2);
}
char *pmin = strtok(pline, ";");
char *pmax = strtok(NULL, ";");
char *pname = strtok(NULL, ";");
printf("Min: %s, Max: %s, Name: %s", pmin, pmax, pname);
char *pmin2 = PadLeft(pmin);
char *pmax2 = PadLeft(pmax);
if (strcmp(pnumber2, pmin2) >= 0 && strcmp(pnumber2, pmax2) <= 0)
{
printf(" ** FOUND **\n");
free(pmin2);
free(pmax2);
break;
}
printf(" ** NO GOOD **\n");
free(pmin2);
free(pmax2);
}
fclose(file);
free(pnumber2);
}
#包括
#包括
#包括
void FindCCType(常量字符*pnumber);
int main(int argc,char*argv[])
{
FindCCType(“67000001”);
返回0;
}
#定义MAXLENGTH 16
char*PadLeft(常量char*pnumber)
{
char*pnumber2=(char*)malloc(MAXLENGTH+1);
尺寸长度=标准长度(P编号);
如果(len>MAXLENGTH)
{
/*信用卡号中的数字太多*/
出口(1);
}
strcpy(pnumber2+MAXLENGTH-len,pnumber);
char*pbegin=pnumber2,*plast=pnumber2+MAXLENGTH-len;
while(pbegin 如果(strcmp(pnumber2,pmin2)>=0&&strcmp(pnumber2,pmax2)@edGGars你在使用什么编译器?我是C新手,我使用deafoult编译器的DEV-C++进行编译,但我有一个任务,我不能使用长-长类型…@edGGars如果这是作业,现在很清楚这是作业,你应该编辑你的帖子并把标签放在作业中。重复前面的问题: