我需要读取一个包含矩阵的文件。问题是,如果矩阵也包含负数怎么办?
2 -20 1
5 -4 -312
10 4 -3
假设文件包含此内容。如何阅读并存储在int
数组中?语言是C。感谢您的帮助。
答案 0 :(得分:0)
负数与正数相同。 documentation for fscanf
明确表示:
d
十进制整数任意数量的十进制数字(0-9),可选地在其后加上符号(+或-)。
(http://www.cplusplus.com/reference/cstdio/fscanf/?kw=fscanf)
因此,如果您在%d
中使用fscanf
,则不需要对负数做任何特殊的事情。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int matrix[3][3];
int row,col;
FILE *read_file;
read_file = fopen ("matrix.txt", "r");
for (row=0; row<3; row++)
{
for (col=0; col<3; col++)
{
if (fscanf (read_file, "%d", &matrix[row][col]) < 1)
{
printf ("unexpected end of file or other error\n");
exit(-1);
}
}
}
fclose (read_file);
for (row=0; row<3; row++)
{
for (col=0; col<3; col++)
{
printf ("%4d ", matrix[row][col]);
}
printf ("\n");
}
return 0;
}
导致:
2 -20 1
5 -4 -312
10 4 -3