C文件问题
#include<stdio.h>#include<stdlib.h>
int main()
{
FILE *fp;
char str;
fp = fopen("myfile.dat","w");
fputs("abc",fp);
fclose(fp);
fp = fopen("myfile.dat","a+");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%s",str);
puts(str);
fclose(fp);
}
这段代码为什么会输出abc28,其中的28不是用整型格式化输出的吗?这其中是怎么操作最后输出abc28的? 数字可以变成字符(数字也有ascll码) 本帖最后由 liuzhengyuan 于 2020-7-24 16:34 编辑
你不就是在用 整型格式化 吗?
第 12 行
fprintf(fp,"%d",28); xiaosi4081 发表于 2020-7-24 16:31
数字可以变成字符(数字也有ascll码)
我使用整型输入的28,那么变成字符也应该是28对应的ascii码啊,为什么会输出28。 老牛来学习 发表于 2020-7-24 17:02
我使用整型输入的28,那么变成字符也应该是28对应的ascii码啊,为什么会输出28。
我使用整型输入的28,那么变成字符也应该是28对应的ascii码啊,为什么会输出28。 老牛来学习 发表于 2020-7-24 17:15
我使用整型输入的28,那么变成字符也应该是28对应的ascii码啊,为什么会输出28。
你看看 3L 我的回答 liuzhengyuan 发表于 2020-7-24 17:21
你看看 3L 我的回答
我的理解是比如我用整型输入一个65,那么我用字符打出来的应该是A,为什么我这里以整型输入28,给它加到字符串里,打印出来的还是28?没理解您回答什么意思 本帖最后由 liuzhengyuan 于 2020-7-25 10:19 编辑
老牛来学习 发表于 2020-7-24 19:36
我的理解是比如我用整型输入一个65,那么我用字符打出来的应该是A,为什么我这里以整型输入28,给它加到 ...
因为你用是 %d 而不是%c。
这叫格式化
就是把其他数据类型转换为字符
但是不是所有转换都是根据 ascii 来的
%c 是根据 ascii 来的
但 %d 不是
页:
[1]