如何将用户输入的特定行打印到控制台 (C++)

菊花

我正在使用 C++ 和终端。所以我的程序使用用户输入read(STD_FILENO,buf,BUFFER,我试图只写回特定的行。

例如,如果用户总共输入了 10 行,我将如何打印第 3 到 7 行或第 6 行到第 10 行?

我正在尝试使用write()函数 ( write(STD_FILENO,buf,BUFFER)) 但它没有打印我想要的内容。
我试过搞乱 BUFFER 并试图使它小于用户输入的字符总数,但它仍然无法正常工作。

我的理解是,无论我说什么BUFFER,它都会写到那个 BUFFER 值,所以它会从 0 开始到 BUFFER。但是如果我想从第 6 行开始,那可能从字符 #15 而不是 0 开始......这有意义吗?

请注意:我需要使用read()write()

谢谢你!

巴西尔·斯塔林克维奇

如果您只需要使用read(2)write(2),那么您还需要open(2)close(2)lseek(2)并且您需要在上面设计和编码您自己的缓冲 IO 库它。仔细阅读这里提到的每个系统调用的文档。使用他们每个人的结果。处理代码中的错误情况。参见errno(3)perror(3)

因此,在其中保留一个缓冲区(或多个)和几个指针(或偏移量)(可能至少是当前消耗的位置和最后一个read位置等)。

也许你会想要使用一些容器您可能会开始fgetc在缓冲 IO 类上实现自己的等价物,并在此基础上进行构建。

行在系统调用级别并不真正存在。你需要照顾\n你的代码。

顺便说一句,您可以学习一些实现 的自由软件C 库的源代码以获得灵感<stdio.h>,例如musl-libc

当然,您应该使用所有警告和调试信息(g++ -Wall -Wextra -g使用GCC进行编译,并且您需要使用调试器gdb来了解程序的行为并找到错误。不要害羞地在某些板上绘制虚拟地址空间中发生的情况(用箭头表示的指针)。

注意:SO 不是做功课的服务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将文件的实际名称打印到控制台(C++)

来自分类Dev

C ++:重复使用打印到控制台的行

来自分类Dev

如何不打印到新行 c# 控制台

来自分类Dev

如何在C#中将2D数组打印到控制台

来自分类Dev

如何在C ++中将不同类型的多个变量打印到控制台

来自分类Dev

C ++-如何删除打印到控制台的换行符

来自分类Dev

如果用户在C#程序中打印“ x”,如何使控制台应用程序退出?

来自分类Dev

如何将打印的 C 控制台导入节点 red

来自分类Dev

防止用户在C#中输入空控制台

来自分类Dev

如何在 C# 控制台应用程序中跟踪用户输入?

来自分类Dev

使用C ++将UTF8字符打印到Linux控制台

来自分类Dev

遍历BSTR的VARIANT / SAFEARRAY以分配值并在C ++中打印到控制台

来自分类Dev

C ++-尝试打印到具有许多类的控制台和文件吗?

来自分类Dev

C ++函数不会将数组反向打印到控制台

来自分类Dev

使用C ++将UTF8字符打印到Linux控制台

来自分类Dev

C ++将特殊的ASCII字符打印到Windows控制台

来自分类Dev

C ++:在输出之前无法删除已经打印到控制台的字符

来自分类Dev

C++:如何将用户输入作为函数参数?

来自分类Dev

如何将unicode符号打印到控制台

来自分类Dev

如何在过程运行时(C ++ / Boost.Process)期间捕获标准输出并打印到控制台和文件

来自分类Dev

验证C ++中的控制台输入

来自分类Dev

C#控制台输入

来自分类Dev

C-打印到控制台,可以删除一个字符串

来自分类Dev

为什么dd if = / dev / sdb | Pigz -c | tee /sdb.img.gz打印到控制台?

来自分类Dev

如何在C ++控制台中更改先前打印到屏幕上的字符

来自分类Dev

如何从XSJS打印到控制台

来自分类Dev

从控制台获取用户输入时出现“ System.FormatException”-Visual C#

来自分类Dev

在C#中对用户进行解析和循环是/否控制台输入

来自分类Dev

C#可以让用户输入设置控制台颜色吗?

Related 相关文章

  1. 1

    如何将文件的实际名称打印到控制台(C++)

  2. 2

    C ++:重复使用打印到控制台的行

  3. 3

    如何不打印到新行 c# 控制台

  4. 4

    如何在C#中将2D数组打印到控制台

  5. 5

    如何在C ++中将不同类型的多个变量打印到控制台

  6. 6

    C ++-如何删除打印到控制台的换行符

  7. 7

    如果用户在C#程序中打印“ x”,如何使控制台应用程序退出?

  8. 8

    如何将打印的 C 控制台导入节点 red

  9. 9

    防止用户在C#中输入空控制台

  10. 10

    如何在 C# 控制台应用程序中跟踪用户输入?

  11. 11

    使用C ++将UTF8字符打印到Linux控制台

  12. 12

    遍历BSTR的VARIANT / SAFEARRAY以分配值并在C ++中打印到控制台

  13. 13

    C ++-尝试打印到具有许多类的控制台和文件吗?

  14. 14

    C ++函数不会将数组反向打印到控制台

  15. 15

    使用C ++将UTF8字符打印到Linux控制台

  16. 16

    C ++将特殊的ASCII字符打印到Windows控制台

  17. 17

    C ++:在输出之前无法删除已经打印到控制台的字符

  18. 18

    C++:如何将用户输入作为函数参数?

  19. 19

    如何将unicode符号打印到控制台

  20. 20

    如何在过程运行时(C ++ / Boost.Process)期间捕获标准输出并打印到控制台和文件

  21. 21

    验证C ++中的控制台输入

  22. 22

    C#控制台输入

  23. 23

    C-打印到控制台,可以删除一个字符串

  24. 24

    为什么dd if = / dev / sdb | Pigz -c | tee /sdb.img.gz打印到控制台?

  25. 25

    如何在C ++控制台中更改先前打印到屏幕上的字符

  26. 26

    如何从XSJS打印到控制台

  27. 27

    从控制台获取用户输入时出现“ System.FormatException”-Visual C#

  28. 28

    在C#中对用户进行解析和循环是/否控制台输入

  29. 29

    C#可以让用户输入设置控制台颜色吗?

热门标签

归档