【发布时间】:2018-09-16 00:20:32
【问题描述】:
我正在尝试从文件中读取几行并存储我逐行读取的每个字符的 ASCII 值。我的输入如下所示:
这是我的代码最初的样子和它产生的结果:
char buf3[256], buf5[256], buf6[256], buf7[256], buf4[256], buf9[256];
fscanf(fp, "%[^\n]", buf3);
while (!feof(fp)) {
fscanf(fp, "%s %s %s %s %s", buf4, buf5, buf6, buf7, buf9);
printf("\n%c %c %c %c %c", *buf4, *buf5, *buf6, *buf7, *buf9);
}
我认为打印出 %c 会给我 ASCII 值。 有没有办法转换这些值?
【问题讨论】:
-
您需要使用
%d打印出一个字符的ASCII 值——例如:printf("%d",buf5[0]);+ 学习如何访问字符串的每个字符。 -
*buf4, *buf5, *buf6, *buf7, *buf将打印每个数组中的第一个字符。 (%d转换对于打印 ASCII 值是正确的——要转换为十进制值,您需要从字符值中减去'0')您需要查看 Why is while ( !feof (file) ) always wrong?。 -
您应该在此处复制并粘贴输入和输出。将它们放在图像中会阻止人们尝试代码