当前位置: 代码迷 >> C语言 >> 奇怪的输出?
  详细解决方案

奇怪的输出?

热度:97   发布时间:2007-07-20 00:48:49.0
奇怪的输出?

以下这程序为什么每次输出时都会输出一些附加的信息:
例如:输入ab,cd回车时,他竟输出ab,cd后还会输出copyright (c) 1998 borland intl.
为什么会这样啊?
main()
{char s,c;
scanf("%s,%s",s,c);
printf("%s,%s",s,c);
}

搜索更多相关的解决方案: copyright  信息  

----------------解决方案--------------------------------------------------------
呵呵!
你编写的程序显然是错了!
%s是控制字符串接受的格式说明符,而你定义的char s,c;是字符型变量。
只可以接受一个字符的,当然错了。
改为数组就好了。
同时使用%s 还有许多注意要点的,多看看书就明白了。
----------------解决方案--------------------------------------------------------
以下是引用yqiong在2007-7-20 0:48:49的发言:

以下这程序为什么每次输出时都会输出一些附加的信息:
例如:输入ab,cd回车时,他竟输出ab,cd后还会输出copyright (c) 1998 borland intl.
为什么会这样啊?
main()
{char s,c;
scanf("%s,%s",s,c);
printf("%s,%s",s,c);
}

第一,你试图用字符型变量接受字符串型值;
第二,scanf函数中你用了逗号,如果输入字符串时两个字符之间不用逗号的话它是不能接受的;
第三,scanf函数中接受输入的参数应该是指针,所以除指针(或数组)外必用取地址运算符将变量地址取出作为参数。
我想下面这样写应该没问题了:
#include <stdio.h>
int main()
{char s[20],c[20];
scanf("%s%s",s,c);
printf("%s,%s",s,c);
return 0;
}

----------------解决方案--------------------------------------------------------
main()
{
char s,c;
scanf("%c,%c",&s,&c);
printf("%c,%c",s,c);
}
----------------解决方案--------------------------------------------------------
http://bbs.bc-cn.net/viewthread.php?tid=156855
----------------解决方案--------------------------------------------------------

多谢!
顺便问下在主函数中使用return 0;和return ;的作用是什么?


----------------解决方案--------------------------------------------------------
以下是引用yqiong在2007-7-20 23:22:26的发言:

多谢!
顺便问下在主函数中使用return 0;和return ;的作用是什么?

返回值


----------------解决方案--------------------------------------------------------

能详细点吗?
返回?返回哪呀?
0和1各返回什么?


----------------解决方案--------------------------------------------------------
以下是引用yqiong在2007-7-23 0:14:54的发言:

能详细点吗?
返回?返回哪呀?
0和1各返回什么?

在哪个函数里就是哪个函数的返回值呀


----------------解决方案--------------------------------------------------------
  相关解决方案