网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月22日漏签0天
c语言吧 关注:801,244贴子:4,371,522
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回c语言吧
>0< 加载中...

C PRIMER PLUS 361页的程序清单13.3问题

  • 只看楼主
  • 收藏

  • 回复
  • 灭绝火腿肠
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <stdlib.h>
#define MAX 40
int main(void)
{
FILE *fp;
char words[MAX];
if ((fp = fopen("wordy", "a+")) == NULL)
{
fprintf(stdout,"Can't open \"words\" file.\n");
exit(1);
}
puts("Enter words to add to the file; press the Enter");
puts("key at the beginning of a line to terminate.");
while (gets(words) != NULL && words[0] != '\0')
fprintf(fp, "%s ", words);
puts("File contents:");
rewind(fp); /* go back to beginning of file */
while (fscanf(fp,"%s",words) == 1)
puts(words);
if (fclose(fp) != 0)
fprintf(stderr,"Error closing file\n");
return 0;
}
程序输出
C>addaword
Enter words to add to the file; press the Enter
key at the beginning of a line to terminate.
The fabulous programmer[enter]
[enter]
File contents:
The
fabulous
programmer
为什么下面的输出能把The fabulous programmer分开成单词而且还换行,fscanf()函数不读取空格类的字符,那么是怎么分开的呢?


  • TNT_Jerry
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
输入流(fp)中的字符有The fabulous programmer
fscanf读到The中的e后遇到空格而停止,The被fscanf语句从输入流fp中调出存入word内
然后puts函数输出字符串word并自动在行尾加了一个换行符
其他几个也是这么个道理


2025-11-22 15:58:26
广告
不感兴趣
开通SVIP免广告
  • 灭绝火腿肠
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
fscanf遇到空格直接停止读取了?不是接着空格后面读取啊?原来是这样,这么一说我就懂了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示