论坛: 编程破解 标题: c++编程疑问。。。。 复制本贴地址    
作者: 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号