c语言新人求牛人指教 问题是“warning C4002: too many actual parameters for macro 'getchar'“

骨灰级土豆君 2015-11-04 07:09:53

#include <stdio.h>
void Drawpic (int n,char c);
void Drawpic (int n,char c)
{
int m,n,s;
char c;
for (m==1;m<=n;m++)
{
for (s=1;s<=40-m;s++)
printf(" ");
}
for (s=1;s<=2m-1;s++)
{
printf("c");

}
return 0;
}
void main()
{
int i,j,k;
char o,p,q;
i=7;
j=11;
l=20;
char o=getchar (*);
char p=getchar (@);
char q=getchar ($);
Drawpic(i,o);
Drawpic(j,p);
Drawpic(l,q);
}
我是这样写的- -
好无奈。。。
...全文
849 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly_dragon_fly 2015-11-05
  • 打赏
  • 举报
回复
感觉错误多, 直接改成这样吧
void Drawpic (int n,char c)
{
    for(int i=0;i<n;i++){
        for(int j=1;j<n-i;j++) putchar(' ');
        for(int j=0;j<2*i+1;j++) putchar(c);
        puts("");
    }
}

int main()
{
    Drawpic(7,'*');
    Drawpic(11,'@');
    Drawpic(20,'$');
}
ztenv 版主 2015-11-04
  • 打赏
  • 举报
回复
对照字典慢慢看错误的单词,如果你想学编程,就这样一步一步来吧
fefe82 2015-11-04
  • 打赏
  • 举报
回复
char o=getchar (*); 你是不是想写 char o = '*'; 其余两个同。 printf("c"); 这个你是不是想写 printf("%c", c);
奋起无迹 2015-11-04
  • 打赏
  • 举报
回复
getchar 由宏实现:#define getchar() getc(stdin)。getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.

64,674

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧