【发布时间】:2017-05-25 09:29:31
【问题描述】:
所以,我有我的矩阵,比方说 int matC[N][N], 已经用整数值填充了。
我要做的就是将此矩阵保存到 .txt 文件中。 我试过这个:
1:将矩阵中包含的整数转换成字符串
char *buffer;
for (int i = 0 ; i < N ; i++)
{
for (int j = 0 ; j < N ; j++)
{
snprintf(buffer, sizeof(matC[i][j]), "%d", matC[i][j]);
}
}
2:将字符串写入文件(fileC.txt)
int fdC = open("fileC.txt", O_RDWR);
write(fdC, buffer, sizeof(buffer));
我确实在我的 fileC.txt 中得到了一些东西,但它是一堆难以辨认的符号。 期待您的帮助。
【问题讨论】:
-
您的所有
snprintf调用都覆盖了缓冲区开头的相同 4 个字节(可能是其他数字,具体取决于您的系统)。 -
您需要为缓冲区分配内存,
sizeof指针就是指针的大小,而不是分配的内存。 -
您将错误的
sizeof传递给snprintf:它应该是目标缓冲区的大小,不一定是您正在打印的内容的大小。 -
将整数值
1、2和34写入文件后,您将如何区分1、2、34和12、3、4?
标签: c matrix system-calls