【发布时间】:2014-09-18 13:30:39
【问题描述】:
我想从标准输入读取一个字符串,它包含多行,由 \n 分隔,但问题是,如果我尝试从标准输入读取字符串,遍历所有字符,如下所示:
char buff;
while(read(0, &buff, 1) > 0)
foo(buff);
它正在读取像“hello\n”这样的字符串,因为它具有字符h-e-l-l-o-\-n,而不是末尾的新行作为字符。我该如何解决?
【问题讨论】:
-
你可以通过修正你的输入来修正它。换行符,在 ASCII 中,是 0x0a。如果您正在阅读带有“n”(0x6e)的内容,则说明您的输入已损坏,而不是您的程序。