
int main()
{
int c;
while((c=getchar())!='#')
{
switch (c)
{
case '\n':
puts("\\n");break;
case '\t':
puts("\\t");break;
default:
putchar(c);
}
}
return 0;
}
我运行后比如输入"h制表符e换行"后怎么就运行了,我上面条件是等于#号时才运行结果啊,而且结果是:
h\t
e\n
怎么是一行一行的,不是连在一起的嘛?
给楼上做个补充:
第一个问题
为什么不输入#就运行,因为getchar()是当用户键含拆入回车之后,getchar()才开始从stdin流中每次读入一个字符,建议楼主试试可蔽宽回显的getche()和不回显的getch()
第二个问题
就是puts()的原因,它会默认谈并枣换行
puts(char *ch)这个函数是输出字符串之后默认换行的
我看你应该是先输入‘h然’后又输入‘制表符’再输入‘e'最后‘回车’再‘#'了雀宽饥顷返吧?puts就有自动换行的功能巧神啊,所以不要用puts 改为printf不就行了?