|
![]() | 作者: sicama [sicama]
![]() |
登录 |
#include<iostream.h> void main() { int p[10]; for(int i=0;i<10;i++) { cin>>p[i];//这里若输入一个字符型的数,如“g”就会出错,应该如何避免呢?,另外 //各位大侠 //能不能给我说说为什么会这样呢? } for(i=0;i<10;i++) cout<<p[i]<<" "; } //编程环境:win98se+vc++6.0 |
地主 发表时间: 06/03 11:05 |
![]() | 回复: dirboys [dirboys] ![]() |
登录 |
定义为字符喽 |
B1层 发表时间: 06/03 17:38 |
![]() | 回复: sicama [sicama] ![]() |
登录 |
那如果那个变量是一个档案管理中的高数成绩呢??还是把它定义为CHA吗? 其实一般的档案管理软件是怎么处理的。。 还有,,,如果这样: char ch[100]; scanf("%s",ch); 如果是输入了超过100个字符。。就会出错。。就是所谓溢出吗?? 应该如何避免啊。??? |
B2层 发表时间: 06/04 15:47 |
![]() | 回复: fengyuwww [fengyuwww] ![]() |
登录 |
你可以使用结构体,数组是不能实现的,它必须是同类型的数据. 关于数组溢出问题,只能靠你自已出查,C++编译系统是不做检查的. |
B3层 发表时间: 06/04 17:53 |
![]() | 回复: sicama [sicama] ![]() |
登录 |
那如果我查出就是这里溢出。。 char ch[100]; scanf("%s",ch); 输入大于100个字符就出错。。 那应该怎样解决这个问题啊!!??? 就好像我们TELNET上一台主机,要求输入用户名,如果我输入很大的用户名 字符串。。那为什么对方不会溢出???它是如何避免这个问题的?? 本人初学C编程。。还望各位大侠能指点一二。。谢谢了!! |
B4层 发表时间: 06/05 08:29 |
![]() | 回复: sicama [sicama] ![]() |
登录 |
为何没人回我啊。。是不是没人会(^--^);!!! |
B5层 发表时间: 06/07 10:57 |
![]() | 回复: xiean [xiean] ![]() |
登录 |
scanf("%12s",ch); |
B6层 发表时间: 06/07 13:47 |
![]() | 回复: sicama [sicama] ![]() |
登录 |
谢谢版主,,但我还有一个问题, 就是scanf("%12s",ch);虽然可以使CH只取12个字符。。但是你只有输入回车才能继续下一步。。这样你若输入超过12个字符,那么剩下的字符 就会留在内存(键盘浑冲区?),这样还是会影响下一个键盘输入的。。 如: char str1[20],str2[20]; scanf("%12s",str1); printf("%s\n",str1); scanf("%s",str2); printf("%s",str2); 这样也不行啊。。版主啊。。这又如何搞啶啊。。。 近来要交一个学生档案管理系统给老师作为上机分数。。所发一定要 帮帮我啊。。。。。 先谢谢你了。。。 |
B7层 发表时间: 06/11 09:12 |
![]() | 回复: xiean [xiean] ![]() |
登录 |
用 while(getch()) {} 清键盘缓冲 |
B8层 发表时间: 06/11 10:12 |
![]() | 回复: sicama [sicama] ![]() |
登录 |
终于搞啶了。。 太谢谢版主你了。。 |
B9层 发表时间: 06/11 21:00 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号