gpt4 book ai didi

c - while (scanf()==1) 不起作用 - 我的错误是什么?

转载 作者:行者123 更新时间:2023-11-30 20:37:35 26 4
gpt4 key购买 nike

下面是同一程序的两个版本。第一个有效,第二个无效。使用 while (scanf()==1) 我想检查 scanf.请解释我的错误是什么(请简单地说 - 我是初学者:))

#include <ctype.h>
#include <stdio.h>
#include <string.h>

int main (void)
{
char string_to_cap[90];
int i, n;

// get line of text
printf ("Please, enter a word: ");
scanf ("%89s", string_to_cap);

if (string_to_cap != NULL) // if s is not NULL than go ahead and execute the code below

{
// capitalize text
for (i = 0, n = strlen(string_to_cap); i < n; i++)
{
printf("%c", toupper(string_to_cap[i]));
}
}
printf ("\n");
}

这是第二个不起作用的:

#include <ctype.h>
#include <stdio.h>
#include <string.h>

int main (void)
{
char string_to_cap[90];
int i, n;

// get line of text
printf ("Please, enter a word: ");

while (scanf ("%89s", string_to_cap) == 1);

{
// capitalize text
for (i = 0, n = strlen(string_to_cap); i < n; i++)
{
printf("%c", toupper(string_to_cap[i]));
}
}
printf ("\n");
}

最佳答案

while (scanf  ("%89s", string_to_cap) == 1);
^

注意错误

这实际上意味着while循环只有一个语句,即;

以及之后的 block

{
// capitalize text
for (i = 0, n = strlen(string_to_cap); i < n; i++)
{
printf("%c", toupper(string_to_cap[i]));
}
}

永远不会被执行。

关于c - while (scanf()==1) 不起作用 - 我的错误是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32269978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com