我对C很陌生,或者说,非常陌生。我试着用putw()把整数写入一个文件,然后用getw()读取它们,我用一个while循环读取它们,直到EOF。但是这个循环过早地结束了,当getw()从文件中得到整数26时,它似乎就结束了。我完全不知所措。
基本上,我想使用putw将之前保存到文件中的整数打印出来(),每第7次迭代我打印一个新行。它一直工作到getw()遇到整数26,即使它不是EOF,也会终止循环.无论文件中有多少个整数,它只能在getw()遇到26之前工作。我试过使用fscanf,但也没有成功。请帮助初学者。
void readfile() {
FILE *f;
f = fopen("INTEGERS.DAT", "r");
int num, xar=1;
if (f==NULL){
printf("NO file detected.\n");
exit(0);
} else {
while((num = getw(f)) != EOF) {
printf("%d ", num);
if ( xar % 7 == 0) {
printf("\n");
}
xar++;
}
}
fclose(f);
}
先谢谢你。
1条答案
按热度按时间vmjh9lq91#
您没有指明数据文件的格式,但注意到您使用“r”参数打开文件,这将表明文件中的数据是文本格式而不是二进制格式。因此,使用该信息和一点艺术性许可,我创建了一个代码片段来构建一些文本数据,其中文件中每行/每条记录都有一个整数值,然后使用readfile函数的一个调整版本读取该文件中的数据。
有些事项要指出。
下面是终端的一些示例输出。
继续进行测试,看看它是否符合项目的精神。