【发布时间】:2020-07-30 03:32:07
【问题描述】:
所以,我试图把一个函数的输出放到另一个函数中
这是我试图获得输出和输入的函数,您可以忽略第二个函数内部,我只是简单地输入printf 来检查变量是否正确。
int guess(int a, int b){
printf("\nEnter you guess: ");
scanf("%d,%d", &a, &b);
return a, b;
}
int check(int a, int b){
printf("%d %d ",a,b);
}
这里是代码:
#include <stdio.h>
int main(){
int row, column;
guess(row, column);
check(row, column);
}
int guess(int a, int b){
printf("\nEnter you guess: ");
scanf("%d,%d", &a, &b);
return a, b;
}
int check(int a, int b){
printf("%d %d ",a,b);
}
我试图简单地说出来是为了更清楚地了解如何做。
当我运行代码并输入坐标时,例如:4,5,它只打印出0 1
另外,数组可以做到吗?
【问题讨论】:
-
仅供参考,C 函数(如
guess(...))只能返回 一个 值。你的声明,return a, b;没有做你认为的事情。表达式a, b是一个comma expression。它评估a的副作用(没有副作用,但显然你的编译器不会警告你),然后它返回b....的值。Justb的值。 -
您对
guess(...)的实现还差得很远。就好像您试图通过猜测单词和符号的含义来学习C。如果你找到并遵循一个好的教程,我认为你会学得更快。 -
您不希望将输入函数的结果直接返回给使用这些值的函数。为什么?如果不检查返回,您将无法正确使用输入函数。您必须针对 (1)
EOF进行验证; (2) matching 或 input 失败或 (3) 良好的输入 before 使用填充的值scanf(). -
您有两个选择:1) 返回 int 数组 2) 回调函数。您的返回类型 int 意味着您只能返回一个值