c语言 - 如何连接数字字符串,然后将其分配给'long'类型变量?



我正试图生成一个"代码",表示一系列数字参考信息,最终将其打印在控制台屏幕上。让我做一个更好的解释:

我的应用程序需要存储一些被称为"学院学生"的信息。它需要读取(从键盘(:

课程(1或2(,级别(1-3(,文件编号(最多8个编号(,姓名,年平均校准。

我需要生成一个代码编号,表示课程、级别和文件编号。例如,档案号为045的2级课程1的学生将注册为"12045"。然后我必须将它存储在一个int长变量中。

所有信息注册后,在将其打印到屏幕上之前,需要以特定的方式对其进行排序。这一切都很好,但代码号的正确生成。

当我打印生成的代码号时,我的问题就来了。我开始将Course、Level和File Number的输入数字视为字符串,以使用"strcpy"one_answers"strcat"函数,从而生成代码,然后将其解析为(long(。然后,我在每个学生身上打印了一个完全不同的生成代码。你知道为什么会发生这种事吗?

我使用单独的矢量和通过索引相关的矩阵。我希望这是一个明确而有用的问题。如果没有,可以问我一个更好的问题,甚至删除它。这是我的第一个问题。谢谢

从键盘读取信息

printf("nIngresar Curso (1 a 2): ");
fflush(stdin);
gets(curso);
while(strcmp(curso, "1")!=0 && strcmp(curso, "2")!=0) {
printf("aError. Ingresar Curso (1 a 2): ");
fflush(stdin);
gets(curso);
}
strcpy(codalumno, curso);
printf("nIngresar Nivel (1 a 3): ");
fflush(stdin);
gets(nivel);
while(strcmp(nivel, "1")!=0 && strcmp(nivel, "2")!=0 && strcmp(nivel, "3")!=0) {
printf("aError. Ingresar Nivel (1 a 3): ");
fflush(stdin);
gets(nivel);
}
strcat(codalumno, nivel);
printf("nIngresar N de Legajo: ");
fflush(stdin);
gets(legajo);
strcat(codalumno, legajo);

这是对long的解析和分配(我不确定它是否正常工作(

auxl=(int)codalumno;
alumno[i]=auxl;

使用atol((函数。

auxl = atol(codalumno);

相关内容

最新更新