我想读取一个来自stdin的字符串,它将包含多行,由\ n' s分隔,但问题是如果我尝试从stdin中读取字符串迭代所有字符,如下所示:
char buff;
while(read(0, &buff, 1) > 0)
foo(buff);
它正在阅读像#34; hello \ n"拥有字符h-e-l-l-o-\-n
而不是最后的新行作为字符。我该如何解决这个问题?
答案 0 :(得分:2)
'\n'
转义序列由编译器解释。在键盘上输入或从文件中读取它不会产生换行符:您实际上从输入中取回两个字符 - 首先是斜杠,然后是小写'n'
字符。
如果输入行尾字符,请在键盘上按 Enter ,或在输入文件中添加行尾字符。