题目:
有一个文本文件保存了3行3列数据,通过回车换行分隔行,有效元素为1-9,其他内容都认为是空。
要求:
1、实现转置,即行列交换。
2、输出时处理非法字符,如%,#等。
首先,在该程序目录下创建一个a.txt文件。
文件内容:
12.
%56
789
#include<stdio.h>
void filestore(){
char a[3][3];
FILE *f= fopen("a.txt","r");
if(f == NULL){
printf("文件为空!");
}
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
fscanf(f,"%c",&a[i][j]);/*每次读取一个数,fscanf函数遇到空格或者换行结束*/
}
fscanf(f,"\n");
}
fclose(f);
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(a[j][i]>='0' && a[j][i]<='9'){
printf("%c ",a[j][i]);//输出
}else{
printf(" ");//输出
}
}
printf("\n");
}
}
int main(){
filestore();
return 0;
}
控制台输出结果:
1 7
2 5 8
6 9