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

 
 
 
日一二三四五六
       
       
       
       
       
       

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

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

本吧签到人数:0

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

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

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

求救

  • 只看楼主
  • 收藏

  • 回复
  • aalAge
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
题:
编写一个程序, 以一个字符和任意文件名作为命令行参数。 如果字符后面没有参数, 该程序读取标准输入; 否 则, 程序依次打开每个文件并报告每个文件中该字符出现的次数。 文件名和字符本身也要一同报告。 程 序应包含错误检查, 以确定参数数量是否正确和是否能打开文件。 如果无法打开件, 程序应报告这一情况, 然后继续处理下一个文件
以上是原题,这里是其中读取标准输入部分,但是每次输入完后fname[ ]的所有内容都归零了,怎么办?


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char * s_gets(char *, int);
int main()
{
int i;
int fnum;
char *fname[15];
char stemp[41];
FILE *fp;
for (i=0; (fname[i] = s_gets(stemp, 41)) != NULL && i<2;i++)
{
printf("%s, %s\n",fname[i], stemp);
}
fnum = i+1;
for (i=0;i<fnum;i++)
printf("fname[%d] :%s\n",i,fname[i]);
for (i = 0; i < fnum; i++){
if ((fp = fopen(fname[i],"r")) == NULL)
{
fprintf(stderr, "Error in opening %s\n",fname[i]);
continue;
}
}
return 0;
}
char * s_gets(char * st, int n)
{
char * ret_val;
char * find;
ret_val = fgets(st, n, stdin);
if (ret_val)
{
find = strchr(st, '\n');
if (find)
*find = '\0';
else
while (getchar() != '\n')
continue;
}
return ret_val;
}


  • 一周休七日
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你每次都是覆盖stemp,fname里面的每个指针都是指向stemp这个数组


2025-08-09 23:20:07
广告
不感兴趣
开通SVIP免广告
  • aalAge
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
函数,数组都改了,一点没想到是stemp。谢谢


登录百度账号

扫二维码下载贴吧客户端

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