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

标签 c parsing matrix vector

我正在尝试生成一个“代码”,它代表一系列数字引用信息,最终将其打印在控制台屏幕上。让我做一个更好的解释:

我的应用程序需要存储一些涉及“学院学生”的信息。它需要读取(从键盘):

类(class)(1 或 2), 级别(1 至 3), 文件编号(最多 8 个数字)、 名和姓, 年平均钙化。

我需要生成一个代码编号,表示类(class)、级别和文件编号。例如,类(class) 1、级别 2 的学生,文件号为 045,将注册为“12045”。然后我必须将其存储在 int long 变量中。

注册完所有信息后,需要以特定方式对其进行排序,然后再将其打印到屏幕上。一切正常,但代码生成正确。

当我打印生成的代码时,我的问题出现了。我开始将类(class)、级别和文件编号的输入数字视为字符串,以利用“strcpy”和“strcat”函数来生成代码,然后将其解析为(长)。然后,我在每个学生身上打印了一个完全不同的生成代码。有什么想法为什么会发生这种情况吗?

我正在使用按索引相关的单独 vector 和矩阵。我希望这是一个清晰且有用的问题。如果没有,请随时向我提出更好的问题,甚至删除它。这是我的第一个问题。谢谢!

从键盘读取信息

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);

关于c - 如何连接数字字符串然后将其分配给 'long' 类型变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784476/

相关文章:

c# - 使用 C# 反序列化 GWT-RPC 响应

python - numpy 矩阵,通过对每一行进行排序将 0 设置为值

c - 通过指向第一个结构的指针初始化结构内的结构

c - TabControl 在显示溢出箭头时剪裁客户区

c# - RSS 提要中 pubDate 的 DateTime.Parse

R:两个数值矩阵的快速笛卡尔积计算

python - Matlab 中的高效矩阵乘法

c - 范围通常如何影响嵌套函数的使用?

c - 合并排序算法中递归划分函数的目的是什么?

javascript - 通过 javascript 在 Json 中查找值