打印出一个char []

Hop*_*mer 1 c

我不能为我的生活记住如何做到这一点.该程序打开一个文件,然后读取该文件.我想要做的就是打印刚读过的内容.

int main(int argc, char *argv[])
{
   char memory[1000]; //declare memory buffer size
   int fd = 0;
   int count = 1000;


   if ((fd = open(argv[1], O_RDONLY)) == -1)
   {
      fprintf(stderr, "Cannot open.\n");
      exit(1);
   }

   read(fd, memory, count);

   //printf the buffered memory contents

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

小智 8

printf接受%s格式以打印C字符串.但是,默认情况下,它要求字符串具有空终止符(0x0 ASCII代码).如果您确定通过调用读取了它,read那么您可以这样做:

printf("%s\n", memory);
Run Code Online (Sandbox Code Playgroud)

但是,你不能确定.因为您甚至不检查读取了多少字节...或错误代码.所以你必须先修复你的代码.

完成检查错误并知道读取了多少字节后,您可以执行以下操作:

printf("%.*s\n", (int)bytes_that_were_read, memory);
Run Code Online (Sandbox Code Playgroud)

祝好运!