How do you read scanf until EOF in C?

前端 未结 7 2143
暗喜
暗喜 2020-12-03 02:56

I have this but once it reaches the supposed EOF it just repeats the loop and scanf again.

int main(void)
{
        char words[16];

        while(scanf(\"%1         


        
7条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-03 03:12

    Try:

    while(scanf("%15s", words) != EOF)
    

    You need to compare scanf output with EOF

    Since you are specifying a width of 15 in the format string, you'll read at most 15 char. So the words char array should be of size 16 ( 15 +1 for null char). So declare it as:

    char words[16];
    

提交回复
热议问题