注册 登录
编程论坛 C图形专区

新手求解吖,各路好人过来帮帮小弟。555

编程_月月鸟 发布于 2012-10-05 12:04, 545 次点击
刚开始自学C语言。
1,不明白什么是“字符计数”“行计数”
2,字符计数                                         行计数
  #include<stdio.h>                                 #include<stdio.h>                  
     main()                                             main()
{  long nc;                                         { int c,n1;            
   nc = 0;                                             n1 = 0;                                                
     while ( getchar() != EOF )                           while( ( c = getchar() ) != EOF)   
   ++nc;                                                   if( c = '\n')              
   printf("%1d\n",nc);                                  ++n1;
 }                                                     printf ("%d\n",n1 );
                                                      }        

  编译,运行之后。我不理解吖,怎么输入什么,回车之后,也只有显示输入的东西。求大神帮小弟理通理通 T·T

3,编写一个统计空格、制表符与换行符个数的程序。(给点思路)


3 回复
#2
编程_月月鸟2012-10-05 12:05
初来报到,分不多,大神快来吖。
#3
pcbaichi2012-10-06 21:48
你看明白字符是怎么回事就知道了,'\n'也是字符,只不过前面那个程序是对所有字符计数,后面只对换行符计数,不懂你就运行第二个程序不敲回车就知道了

我怎么隐约记得是C++primer上的= =,你照着那程序抄不就行了,只要换一下要计数的内容
#4
菜鸟一支2012-10-11 15:52
1、getchar():从标准输入设备上读入一个字符。
2、举个例子:“1d t”
包含了四个字符
然后“1d t
”就包含了五个字符(回车算一个)。
3、谈一谈你的两个程序中的问题:EOF空的意思。如打开文件时:
while ((c = fopen(fp)) != EOF) 但是标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。例如:统计一串字符中的字符个数,用回车表示达到EOF,(被统计的字符中不包含回车),可以这样编写:
#include<stdio.h>
    void main()
{  long nc=0;
     char c;
     do {scanf("%c",&c);
     if(c!='\n')
         nc+=1;}
while ( c!='\n' );
   printf("%ld\n",nc);
}
统计行数类推就行(就是统计回车的个数)。
1