为标准输入中输入的每一行打印行号
我想要做的是为输入的每一行打印一个数字。例如,当用户输入“jaguar”时,程序将输出:
1 jaguar
,如果用户随后输入“lion”,则输出应为:
2 lion。
换句话说,屏幕将如下所示:
jaguar 1 美洲虎 狮子 2 狮子 豹 3 豹...
听起来很简单是的。这是我的代码,它错误地打印了内容,我不明白如何以及为什么......
int main (int argc, const char * argv[])
{
int lineNum = 0;
char c;
while( (c= fgetc(stdin) ) != EOF)
{
if(c == '\n')
{
lineNum++;
printf("\n %i", lineNum);
}
else
{
fputc(c, stdout);
}
}
//return 0;
}
what i want to do is print a number for each line entered. eg when a user enters "jaguar", the program will output:
1 jaguar
and if the user then enters "lion" the output should be:
2 lion.
In other words the screen will be looking like this:
jaguar
1 jaguar
lion
2 lion
leopard
3 leopard...
Sounds easy yes. Here is my code which is printing things wrongly and i dont understand how and why....
int main (int argc, const char * argv[])
{
int lineNum = 0;
char c;
while( (c= fgetc(stdin) ) != EOF)
{
if(c == '\n')
{
lineNum++;
printf("\n %i", lineNum);
}
else
{
fputc(c, stdout);
}
}
//return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这对你有用吗?
Does this work for you ?