从MIPS上的.csv文件读取数据

问题描述 投票:0回答:1

我必须开发一个项目,在这里我必须从.csv文件中读取数据,如下所示:

10,12.1
15,25.6
15,25.1
...

所以我尝试阅读如下:

.data 
    file: .asciiz "/home/gilson/Documents/test.csv" 
    .word 0
    buffer: .space 4
.text
main:
    #open file
    li $v0, 13
    la $a0, file
    add $a1, $zero, $zero
    add $a2, $zero, $zero
    syscall
    add $s0, $v0, $zero
    #read 4 bytes from file
    li $v0, 14
    add $a0, $s0, $zero
    la $a1, buffer
    li $a2, 4
    syscall
    #print
    li $v0, 1
    lw $a0, buffer
    syscall

done: 
    li $v0, 16
    add $a0, $s0, $zero
    syscall

exit:
    li $v0, 10
    syscall

而且我有以下输出:

824979505
-- program is finished running --

所以我将print syscall更改为print string,输出为:

...
li $v0, 4
la $a0, buffer
syscall
...
10,1

如我所见,他正在从文件中读取字符,而不是数字格式。我想知道是否有一种直接读取数字的方法,还是必须使用某些过程将字符从char转换为int?

csv assembly mips file-read atoi
1个回答
0
投票

您从文件中读取的数字将为文本格式。您需要将其从文本转换为数字。

© www.soinside.com 2019 - 2024. All rights reserved.