BBS.ChinaUnix.net
今日推荐    首页 | 新闻 | Linux | AIX | 博客 | 论坛 | 存储 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 空间     
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


向各位高手请教一个c问题
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页]
sj1210
新手




UID:558220
注册:2007-4-29
最后登录: 2008-05-08
帖子:2
精华:0

可用积分:2
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
11楼 发表于 2008-5-8 19:19 
不懂学习~顶下lz



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
DoctorHouse
侠客




UID:699499
注册:2008-5-1
最后登录: 2008-05-31
帖子:45
精华:0

可用积分:45
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
12楼 发表于 2008-5-8 23:20 
回复 #9 system888net 的帖子

其实那上面是我发错的程序!
抱歉哦!
正确的是这样的:
#include<stdio.h>
#include<string.h>

void main()
{
  FILE *in, *out;
  char infile[20],outfile[20],ch,string[100],c;
  int num = 0, word = 0, i = 0;
  
  printf("Enter the infile name:\n");
  scanf("%s",infile);
  printf("%s\n",infile);
  printf("Enter the outfile name:\n");
  scanf("%s",outfile);
  printf("%s\n",outfile);
  if ((in = fopen(infile,"rb"))==NULL)
  {
    printf("cannot open infile\n");
    exit(-1);
  }
  if ((out=fopen(outfile,"wb"))==NULL)
  {
    printf("cannot open outfile\n");
    exit(0);
  }
  for(i = 0; !feof(in); i++)
  {
     ch = fgetc(in);
     printf("%c",ch);
     fputc(ch,out);
     string[i] = ch;
     printf("%c\n",string[i]);
  }
  for (i = 0; (c = string[i]) != '\0'; i++)
  {
    if( c == ' ' && c == '\n' )
      word = 0;
   else if(word == 0)
    {
      word = 1;
      num++;
    }
  }
   printf("There are %d words in the %s\n",num,infile);
   fclose(in);
   fclose(out);  
}
但结果怎么还是一样呢????
谢谢!



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
DoctorHouse
侠客




UID:699499
注册:2008-5-1
最后登录: 2008-05-31
帖子:45
精华:0

可用积分:45
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
13楼 发表于 2008-5-8 23:23 
其实那上面是我发错的程序!
抱歉哦!
正确的是这样的:
#include<stdio.h>
#include<string.h>

void main()
{
  FILE *in, *out;
  char infile[20],outfile[20],ch,string[100],c;
  int num = 0, word = 0, i = 0;
  
  printf("Enter the infile name:\n");
  scanf("%s",infile);
  printf("%s\n",infile);
  printf("Enter the outfile name:\n");
  scanf("%s",outfile);
  printf("%s\n",outfile);
  if ((in = fopen(infile,"rb"))==NULL)
  {
    printf("cannot open infile\n");
    exit(-1);
  }
  if ((out=fopen(outfile,"wb"))==NULL)
  {
    printf("cannot open outfile\n");
    exit(0);
  }
  for(i = 0; !feof(in); i++)
  {
     ch = fgetc(in);
     printf("%c",ch);
     fputc(ch,out);
     string[i] = ch;
     printf("%c\n",string[i]);
  }
  for (i = 0; (c = string[i]) != '\0'; i++)
  {
    if( c == ' ' && c == '\n' )
      word = 0;
   else if(word == 0)
    {
      word = 1;
      num++;
    }
  }
   printf("There are %d words in the %s\n",num,infile);
   fclose(in);
   fclose(out);  
}
但结果怎么还是一样呢????
先谢谢各位了!



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
DoctorHouse
侠客




UID:699499
注册:2008-5-1
最后登录: 2008-05-31
帖子:45
精华:0

可用积分:45
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
14楼 发表于 2008-5-8 23:24 
回复 #10 doctorjxd 的帖子

请问高手
可以详细指出我的错误吗?
我是大一学生
比较嫩!
谢谢哦!



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
DoctorHouse
侠客




UID:699499
注册:2008-5-1
最后登录: 2008-05-31
帖子:45
精华:0

可用积分:45
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
15楼 发表于 2008-5-8 23:25 
回复 #11 sj1210 的帖子

是啊!
我的确不是很会学习哦
但我现在每天在学习怎样去学习!



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
DoctorHouse
侠客




UID:699499
注册:2008-5-1
最后登录: 2008-05-31
帖子:45
精华:0

可用积分:45
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
16楼 发表于 2008-5-8 23:27 
请问那位高手可以帮帮我这嫩生!????



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
DoctorHouse
侠客




UID:699499
注册:2008-5-1
最后登录: 2008-05-31
帖子:45
精华:0

可用积分:45
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
17楼 发表于 2008-5-8 23:44 
回复 #13 DoctorHouse 的帖子

我已经定义多一个j;
再将for (i = 0; (c = string[i]) != '\0'; i++)
  {
    if( c == ' ' && c == '\n' )
      word = 0;
   else if(word == 0)
    {
      word = 1;
      num++;
    }
变为:
  for (i = 0, j = 0; (c[j] = string[i]) != '\0'; i++,j++)
  {
    if( c[j] == ' ' && c[j] == '\n' )
      word = 0;
    else if(word == 0)
    {
      word = 1;
      num++;
    }
  }            
可结果还是一样!?
编译器好像不能经过这一阶段似的?!



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
caijimin   帅哥 (only_you)
风云使者




UID:244859
注册:2005-3-25
最后登录: 2008-07-04
帖子:461
精华:0

可用积分:1071
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
18楼 发表于 2008-5-9 09:10 


QUOTE:
原帖由 caijimin 于 2008-5-8 18:42 发表
if( ch == ' ' && ch == '\n' )

请问什么时候ch可以既等于' '又等于'\n' ,给你指出来又不好好看,,



您对本贴的看法:鲜花[1] 臭蛋[0]

__________________________________

往事并不如烟
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
DoctorHouse
侠客




UID:699499
注册:2008-5-1
最后登录: 2008-05-31
帖子:45
精华:0

可用积分:45
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
19楼 发表于 2008-5-9 11:44 
回复 #18 caijimin 的帖子

谢谢哦!
风云使者
本人既然犯了如此低级错误都不知道,
看来要好好检讨自己才行了!
本人会在以后的学习中,
加强对基础知识的积累!
麻烦你了!



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.038699 second(s), 4 queries , Gzip enabled