小编Voj*_*rda的帖子

我如何在标准输入中寻找

大家好,我需要帮助。我想读取stdin16 个字节。我转换成十六进制形式的每个字节。有没有一种方法可以使用read()函数从头读取 NOT,例如从第二个字节读取?另外我怎么知道我是否已经阅读了全文stdin?- 这样我就可以循环调用这个函数,直到我读完整个stdin

这是我做的一个函数:

void getHexLine()
{

  int n = 16;
  char buffer[n];
  read(STDIN_FILENO, buffer, n);
  buffer[n]='\0';
  //printf("%08x", 0); hex number of first byte on line - not working yet
  putchar(' ');
  putchar(' ');
  //converting every byte into hexadecimal
  for (int i = 0;i < 16;i++ )
  {
    printf("%x", buffer[i]);
    putchar(' ');
    if (i == 7 || i == 15)
        putchar(' ');


  }
  printf("|%s|\n", buffer);
} 
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的,但可以选择从第二个字节开始。

[vcurda@localhost proj1]$ echo "Hello, world! …
Run Code Online (Sandbox Code Playgroud)

c stdin

5
推荐指数
1
解决办法
3157
查看次数

标签 统计

c ×1

stdin ×1