我正在学习 C 语言的基本编程,但在文件写入练习方面遇到问题。问题是在文件中写入方阵,但采用以下方式: 每行前两个数字用“,”分隔,然后分别写下其余数字。
这是一个相当简单的练习,但我只是在学习,我留下了一些有缺陷的代码。我希望你能帮助我。
#include <stdio.h>
int main(){
FILE *data;
int matrix[4][4] = {
{1,2,3,4},
{2,3,5,6},
{9,8,4,5},
{5,3,1,2}
};
data = fopen("output.txt","w");
for (int i = 0; i < 4; ++i)
{
for (int j = 0; j < 4; ++j)
{
if(matrix[i][0]>=0&&matrix[i][j+1]<4)
{
fprintf(data, "%d,%d ",matrix[i][j],matrix[i][j+1]);
}
else
fprintf(data, "%d ",matrix[i][j]);
}
fprintf(data, "\n");
}
fclose(data);
return = 0;
}
我知道我最大的错误是 if 语句的条件,但我不知道如何在这种情况下正确编写它。
我想获得这个输出:
1,2 3 4
2,3 5 6
9,8 4 5
5,3 1 2
如何修复 if 语句或执行不同的操作来获得该输出?
最佳答案
你很接近,但你的逻辑有点偏离,尝试一次打印一个,然后检查内部 for 循环的索引是否为 0 索引,然后在末尾附加逗号。
此外,在您的 return 语句中,您还提供了要返回的值,因此: return 0;您不能指定返回值
希望有所帮助,我使用 printf 完成了我的操作,然后将其改回 fprintf,因此可能存在错误,您可能需要修复
#include <stdio.h>
int main(){
FILE *data;
int matrix[4][4] = {
{1,2,3,4},
{2,3,5,6},
{9,8,4,5},
{5,3,1,2}
};
data = fopen("output.txt","w");
for (int i = 0; i < 4; ++i)
{
fprintf(data, "%d,", matrix[i][0]);
for (int j = 1; j < 4; ++j)
{
fprintf(data, "%d ", matrix[i][j]);
}
fprintf(data, "\n");
}
return 0;
}
关于c - 如何用C语言正确编写文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54413272/