|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- FILE *fp;
- char c;
- int n;
- char ff[5] = "123#";
- fp = fopen("a1.txt","r");
- fputs(ff,fp);
- fclose(fp);
- fp = fopen("a1.txt","r");
- while((c = fgetc(fp))!='#')
- {
- putchar(c);
- }
- fclose(fp);
- fp = fopen("a1.txt","r");
- fscanf(fp,"%d",&n);
- printf("%d\n",n);
- fclose(fp);
- }
复制代码
请问一下是哪里出错了
本帖最后由 sunrise085 于 2020-4-21 10:25 编辑
你理解的有偏差
先说容易理解的问题
scanf和fscanf的差别:scanf是制定从标准输入流(stdin)进行读取,fscanf是从指定输入流进行读取,更多是用于读取文件,但是fscanf也可以从标准输入流读取,fscanf(stdin,"%d",&n)就可以从键盘输入进行读取了
再说读取格式问题
可以认为字符在文件中是以ASCII存储的,但是格式化读取就是要把对应的内容进行格式化啊
你认为从键盘敲进去123就是数字吗?不是!它也是字符键值,但是scanf就可以将之转为数字,这就是格式化的作用啊。
|
|