标题:多了一个ASCII 为10的字符 ?
只看楼主
justafun
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-11-22
结帖率:0
已结贴  问题点数:20 回复次数:2 
多了一个ASCII 为10的字符 ?
程序代码:
/*
编写一个程序,该程序读取输入直到#字符,使程序打印每个输入的字符以及它的十进制ASCII码,每行打印8个字符/编码对。建议:利用字符计数和模运算符(%)在每8个循环周期时打印一个换行符。
*/
#include <stdio.h>
#define END_CHAR '#'
#define LINE_CHAR '\n'
int main(void)
{
char NewChar;
int i_NowTotal = 1;

while((NewChar = getchar()) != END_CHAR){
           printf("%c%d ",NewChar , NewChar);
      if (NewChar == LINE_CHAR)
            i_NowTotal = 0;
      else 
            if (!(++i_NowTotal % 8 )) 
                  putchar(LINE_CHAR);
}
return 0;
}

运行 输出字符第一行多了一个 10  为什么 ???
搜索更多相关主题的帖子: 字符 ASCII 
2009-11-24 07:07
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
得分:10 
知道你意思了。改动一下输出,把输出字符的和输出值的分开。
程序代码:
#include <stdio.h>
#define END_CHAR '#'
#define LINE_CHAR '\n'
int main(void)
{
char NewChar;
int i_NowTotal = 1;

while((NewChar = getchar()) != END_CHAR)
  {
      printf("%c",NewChar);

      if (NewChar == LINE_CHAR)
        i_NowTotal=0;
      else
       {
         printf("/%d ",NewChar);

         if (!(++i_NowTotal % 8 ))
           putchar(LINE_CHAR);
       }
  }
return 0;
}


[ 本帖最后由 UserYuH 于 2009-11-24 09:06 编辑 ]

努力—前进—变老—退休—入土
2009-11-24 08:45
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
得分:10 
因为windows下换行是由两个字符组成,回车和换行,ASCII码分别是0x0D和0x0A,所以输出会多个10
2009-11-24 20:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293174-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.280481 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved