我必须开发一个项目,在这里我必须从.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?
您从文件中读取的数字将为文本格式。您需要将其从文本转换为数字。