| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 695 人关注过本帖
标题:我刚学c语言,遇到一些小问题,希望各位朋友可以帮忙一下给我个解答,谢谢啦 ...
只看楼主 加入收藏
难的哟
Rank: 2
等 级:论坛游民
帖 子:26
专家分:34
注 册:2012-1-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
我刚学c语言,遇到一些小问题,希望各位朋友可以帮忙一下给我个解答,谢谢啦。
main()
{int a;
gets(a);
puts(a);
}
输入67输出的是67
main()
{int a;
scanf(''%d'',a);
puts(a);
}
而这个输入67输出的是C
还有再第二个编码中输入语句变scanf(''%d'',&a);时输入67则会出现
ent
divide error
abnormal program termination
Pt*「「
还有就是当编码为
main()
{int a=67;
puts(a);
}
时还是出现以上那些英文。
搜索更多相关主题的帖子: 学c语言 朋友 
2012-02-13 16:06
难的哟
Rank: 2
等 级:论坛游民
帖 子:26
专家分:34
注 册:2012-1-25
收藏
得分:0 
为什么会出现这样的问题啊???
2012-02-13 16:08
猴子WT
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2012-2-13
收藏
得分:3 
你好,gets(X) and puts(X)   其中X 为字符串
1)你上面的第一个例子 之所以正确   a 用ASCII码处理
2)下面的&a 是正确的输入,计算机接收到的是 int a ,所以不能以字符形式输出, 或许你可以用强制类型转换试试。

2012-02-13 16:53
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:17 
你这个程序代码写的真的是。。
佩服你。


main()
{int a;
gets(a);
puts(a);
}
我想问你数据类型你学了没有。
gets来处理什么。。
【1】函数:gets(字符指针)   【2】头文件:stdio.h(c中),c++不需包含此头文件   【3】原型:char*gets(char*buffer);

你申明了一个整数的类型的变量来放字符。
明显的内存是符合的啊,虽然是新手但还是按照书上正规的来写代码。
虽然你这样貌似符合你的要求。但具体分析是完全不对。
int a; 你没有初始化,
你可以printf("%d",a); 看看里面放的什么, 是一个蛮大的数,也是不确定的。我们叫他垃圾值。
不要用puts 这里。
我来给你分析你的程序,做了什么啊。
int a; 申明了一个变量。
gets(a); 你的本意是来给a赋值。 你用gets来进行给一个整数来赋值,从上面我们就知道char*gets(char*buffer);
参数是一个指针,就是说指向一个存储字符的一个缓冲区(新手完全可以理解成为数组)。
那么你的a 是上面是上面是什么意思呢,经过测试你的编译器完全把a的值当成一个指针来处理了。当成一个地址来处理了
puts(a); 正好你用的是puts 又把的a的值当成地址来处理。输出对应的地址的值。

所以你这样完全是错误的。


这里的a的值 是一个垃圾值 并不是a的地址. 会把你想给a赋值的赋给一个未知的内存里面。这样貌似很危险。具体的我还没有遇到过。
你不行的话可以写一下代码
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{int a;
char *str = a;
gets(a);
puts(a);
puts("看一下");
printf("%s\n",a);
printf("%d\n",a);
}

你现在可能是新手,没有注意这么多。

main()
{int a;
scanf(''%d'',a);
puts(a);
}
你这个验证了了我说话 把a的值当成地址来处理了。
当按照这个地址去取值的时候,却发现根本不存在这样的地址。
编译器就提示我内存不可读。

用心做一件事情就这么简单
2012-02-13 17:24
yin753997002
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2012-2-6
收藏
得分:0 
顶楼上的!
2012-02-13 23:54
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
收藏
得分:0 
4楼 详解
2012-02-14 08:22
快速回复:我刚学c语言,遇到一些小问题,希望各位朋友可以帮忙一下给我个解答, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023494 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved