【发布时间】:2017-01-01 12:15:04
【问题描述】:
问题:
我编写了一个 C 程序,它应该遍历输入文件并在布局相同的表格中显示其表格内容,除了与输入文件不同的是,输出的值应该在漂亮的均匀选项卡列中。
我正在阅读的文本文件有以下内容:
姓名姓氏123 4.2 f
萨拉 dddd 222 3.2 f
丹 SSSS 1233 1.3 米
安 aaaa 443 2.2 f
但是输出错误:
注意不需要的换行,应该在最后一列显示的值变成下一行的第一列。
程序:
int i, j;
char c;
double d;
char str[10];
char t[6]="ssidc"; //Encoded column types descriptor (e.g. string, string, int, double, char"
while(!feof(fa)) {
for(i = 0; i < 5; i++) {
switch(t[i]) {
case('s'):
fscanf(fa,"%s",str);
printf("%s\t",str);
break;
case('c'):
fscanf(fa,"%c",&c);
printf("%c\t",c);
break;
case('d'):
fscanf(fa,"%lf",&d);
printf("%.1lf\t",d);
break;
case('i'):
fscanf(fa,"%d",&j);
printf("%d\t",j);
break;
default:
break;
}
}
printf("\n");//new line
}
【问题讨论】:
-
您是否在调试器中运行代码以逐行跟踪程序,检查相关变量的值以了解实际情况?
-
尝试对 'c' 使用格式“%c”。
标签: c file text switch-statement scanf