我想要做的是为输入的每一行打印一个数字。例如,当用户输入“美洲虎”时,程序将输出:
1美洲虎
如果用户输入“lion”,则输出应为:
2狮子。
换句话说,屏幕看起来像这样:
美洲虎 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;
}
答案 0 :(得分:3)
这对你有用吗?
char buffer[256];
int i = 1;
while (fgets(buffer, sizeof(buffer), stdin)) {
printf("%d %s", i, buffer);
i++;
}
答案 1 :(得分:-1)
这是一个较短的解决方案。
#include <unistd.h>
int main(int argc, char *argv[])
{
execlp("nl", "nl", NULL);
return 1;
}