【发布时间】:2018-04-17 13:10:45
【问题描述】:
我正在使用 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()
谢谢!
【问题讨论】:
-
如果您正在处理输入行,为什么不使用
std::getline()而不是read()?? -
那么至少使用
gets()? -
好吧,clarify 就在你的问题中,并提供一个minimal reproducible example 你到目前为止的情况,包括你遇到的具体问题的详细描述。