我知道这个问题已被多次询问,我已经尝试了所有已发布的解决方案,但对我来说,似乎它不起作用。我不知道这是编译问题还是我做错了。
我正在从' bin.txt'中获取数据。我创建的文件。它包含3x3矩阵0和1(两位数之间没有任何空格)。我想计算有多少个零和一个,根据这个,我想创建一个新的文本文件(在我的代码' encode.txt')并将那些计数的数字写入该文件。
我在CodeBlocks上使用GNU GCC编译器。这是我的代码,如果你发现错别字,那我很抱歉。我不是故意浪费你的时间。任何有关此的帮助和提示都表示赞赏。
#include <stdio.h>
#include <stdlib.h>
#define row 3
#define col 3
int foo(int x, int y);
int main()
{
FILE *ptr;
FILE *encode;
int i,j,zero=0,one=0;
int a[row][col];
ptr=fopen("bin.txt","r");
encode = fopen("encode.txt","w");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
fscanf(ptr,"%1d",&a[i][j]);
if(a[i][j]==0)
{
zero++;
}
else
{
one++;
}
}
foo(zero, one);
zero=0;
one=0;
}
/*----------------Print scaned file----------------------------------*/
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%1d",a[i][j]);
}
printf("\n");
}
/*----------- Foo function ----------*/
int foo(int x, int y)
{
fprintf(encode,"%d %d",x,y);
fprintf(encode,"\n");
}
/*----------- Closing file ----------*/
fclose(ptr);
fclose(encode);
return 0;
}
构建日志:
mingw32-g++.exe -o bin\Debug\file_compress.exe obj\Debug\main.o
obj\Debug\main.o: In function `main':
E:/Code/C/File compression/file_compress/main.c:31: undefined reference to
`foo'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
2 error(s), 0 warning(s) (0 minute(s), 0 second(s))