如何询问用户是否希望在 c 中输入另一个值

发布于 2024-11-07 17:25:34 字数 235 浏览 0 评论 0原文

这就是我尝试的方式,但是当我输入 q 时,它只是跳过命令中的一行并继续程序。

int main()
{
int a;
char c;
cont(&a);
while(a != 'q' && a != 'Q')
{
while ( ( c = getchar() ) != EOF)
{
    putchar( r13( c ) );    
 }
}

return 0;
 }

This is how i attempted it, how ever when i enter q it just skips a line in command and continues the program.

int main()
{
int a;
char c;
cont(&a);
while(a != 'q' && a != 'Q')
{
while ( ( c = getchar() ) != EOF)
{
    putchar( r13( c ) );    
 }
}

return 0;
 }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

活泼老夫 2024-11-14 17:25:34

您需要将 a 的引用传递给 cont() -

void cont(int* a)
{ 
    printf("If you do not want to enter a value press q"); 
    scanf("%c", a);
}

并像这样调用它:

cont(&a);

否则,只有 a 的副本(即被传递给函数)被改变,而不是 a 本身。

如果您想更改函数中a的值,那么您需要将返回值存储在某处,但您忽略了它(例如a = cont(a); ).
或者,为函数提供 a 的引用(例如地址),以便它将能够更改 a 的值。

You need to pass the reference of a to cont() -

void cont(int* a)
{ 
    printf("If you do not want to enter a value press q"); 
    scanf("%c", a);
}

and call it like that:

cont(&a);

otherwise, only the the copy of a (that is passed to the function) is changed, not a itself.

If you want to change the value of a in the function, then you need to store the return value somewhere, but you ignored it (e.g. a = cont(a);).
Or, give a reference (e.g. address of) a to the function, so it will be able to change the value of a.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文