繁体   English   中英

如何从阅读中获取ascii字符?

How do i get ascii character from read?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在此程序中,我需要将我读取的ascii字符的频率存储在一个数组中(以便最频繁地打印)。 问题是我从读取中得到的不是ascii(很可能是某种地址),因此在buf []数组中,我越界了。 有人可以帮我吗?

    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <stdio.h>
    #include<stdlib.h>
    #include<unistd.h>
    #include<strings.h>

    #define MODEMDEVICE "/dev/ttyAMA0"

    #define FALSE 0
    #define TRUE 1

    volatile int STOP=FALSE;

    int main()
    {
      int fd,c, res=0,i;
      struct termios oldtio,newtio;
      int buf[128] ;

      for (i=0;i<128;i++) buf[i]=0;

      fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY );
      if (fd <0) {perror(MODEMDEVICE); exit(-1); }

      tcflush(fd, TCIFLUSH);
      while (STOP==FALSE) {     /* loop until we have a terminating condition */
            int r=read(fd,&c,1);
            write(1,&c,1);
            if (c=='\n') {
                    for(i=0;i<128;i++) 
                        if (res < buf[i] ) 
                            res = buf[i];
                    printf("first char %d \n", res);
            }
            else {
                    buf[c]++;

            }
        }
    }
1 个回复

int c创建一个可能为4个字节的变量。 它没有初始化,因此可能包含任何垃圾。

然后系统调用

read(fd,&c,1)

更改这些字节之一,可能最高或最低,而其他字节保持不变。 现在,您将3个字节的随机垃圾加上fd的一个字节(位于c中的某个位置)组合在一起。

然后,您尝试从这种组合中获得启发。

如果将c定义为char事情可能会好得多:

char c;
1 如何从read()获取字符

我试图复制文件以仅使用open() , read()和write()向后打印。 但是我想知道是否有一种方法可以从读取中获取char指针,从而返回读取的字节数。 如果是这样,我该怎么做,我尝试了一次,但最终出现错误 这是我正在使用的代码段 ...

2013-10-11 23:30:57 3 84   c
3 如何在Cocoa中获取字符的int ASCII值?

如何将ASCII值作为Cocoa中字符的int? 我在python中找到了这样做的答案,但我需要知道如何在Cocoa中执行此操作。 (我仍然是可可的菜鸟)。 Python方法: 使用函数ord()如下: 而且反过来chr(): 我怎么在Cocoa中做到这一点? ...

5 Swift 如何从字符中获取 ASCII 值

我只想快速从单个字符中获取单个 ASCII 值,用于我正在做的密码。 例如,输入“A”我想收到 65。 然而,随着代码 “A”被打印到控制台,而不是我期望的 65。有谁知道一个简单的解决方案? 我搜索的每个地方似乎都认为我想从字符“5”中获取整数 5 ...

6 如何从扩展的ASCII数字获取字符

ASCII码图表表示“ü”为129(十进制)。 但是当我执行trace(“ü” .charCodeAt(0))...我得到的答案是252-这显然是错误的。 似乎String.charCodeAt()仅适用于0-127。 如何在范围为128-255的char和charcode值之间转换? ...

7 如何从其ASCII值获取字符?

我想在Swift 3中从他们的ASCII代码获得字母。我会在Java中这样做: 它将记录从A到J的字母。 现在我在Swift中尝试了这个: 我不仅得到这封信,还得到了: 我究竟做错了什么? 谢谢你的帮助。 ...

2016-11-27 18:07:41 1 685   swift
9 如何获取代表上位ascii值字符的十六进制值的字符串类型

我们的应用程序的一部分会解析RTF文档,我们遇到了一个翻译不好的特殊字符。 在Word中查看时,该字符是一个省略号(...),并且在RTF中被编码为('85)。 在我们的vb代码中,我们将十六进制(85)转换为int(133),然后执行Chr(133)返回(...) 这是C#中的代 ...

2008-09-19 21:32:27 7 3082   c#/ rtf
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM