注册 登录
编程论坛 C++教室

这个头疼的问题

天生 发布于 2008-03-16 00:21, 983 次点击
各位高手 小弟遇到这样一个问题 很长时间了 实在不知怎么解决 想各位高手指点下:
下面代码输入
输入一个整数 6
1 2 3 4 5 6  正常输出
输入一个整数 6
1 2 3 m 4 5 不正常输出
输入一个整数 m
..在死循环
#include<conio.h>
#include<iostrem>
using namespace std;
int main()
{
  int n;
  int *ar;
  char c;
  do
  {
    cout<<"输入一个整数:"<<endl;
    cin>>n;
    ar=new int[n];
    for(int i=0; i<n; i++)
       cin>>ar[i];
    for(i=0; i<n; i++)
       cout<<ar[i];
    delete []ar;
    ar=NULL;
    cout<<"输入一个字符Q或q结束"<<endl;
    getchar();
    c=getch();
  }while((c!='Q')&&(c!='q'));
  return 0;
}66
9 回复
#2
Ethip2008-03-16 09:17
回复 1# 的帖子
我耐心帮你看了下,发现两个问题
1.头文件#include<iostrem>写错了,自己看看哪里写错了
2.发帖子时,程序末尾多了点尾巴,自己给找出来哦!下次请认真一点啊!别人耐心给你回帖,你却“故意”整人。

另外我的IDE是VC++6.0,下面贴出对你的程序的小小韵色。请注意看
#include<conio.h>
#include<iostream>
https://bbs.bccn.net/viewthread.php?tid=203620###

using namespace std;
int main()
{
  int n;
  int *ar;
  char c;

  do
  {
    cout<<"输入一个整数:"<<endl;
    cin>>n;
    ar=new int[n];

    cout<<"输入" << n << "个整数:" <<endl;
    for(int i=0; i<n; i++)
       cin>>ar[i];
    
    cout<< endl << "你刚才输入的几个整数是:"<<endl;
    for(i=0; i<n; i++)
        cout<<ar[i] << "   ";
    delete []ar;
    ar=NULL;
    cout<< endl <<"输入一个字符Q或q结束,其他字符继续"<<endl;
    getchar();
    c=getch();
    cout << endl;
  }while((c!='Q') && (c!='q'));
  return 0;
}
#3
天生2008-03-16 15:25
不好意思,我的代码有错,谢谢楼上兄弟,不过按以下方式输入时还是有问题:
输入一个整数:
6
输入6个整数:
1 2 3 4 5 6

你刚才输入的几个整数是:
1  2  3  4  5  6
输入一个字符Q或q结束,其他字符继续

输入一个整数:
m
输入6个整数:

你刚才输入的几个整数是:
-842150451  -842150451  -842150451   -842150451  -842150451   -842150451
输入一个字符Q或q结束,其他字符继续
'\n' (回车)
输入一个整数:                     *
输入6个整数:

你刚才输入的几个整数是:
-842150451  -842150451  -842150451   -842150451  -842150451   -842150451
输入一个字符Q或q结束,其他字符继续                                 **

在继续输入回车后重复出现标有 * 的这行到 ** 的这行的过程,郁闷 不知怎解决
#4
VanHorn2008-03-16 15:35
楼上的朋友,第一次提示输入,是要求输入数组的大小,动态分配数组时将按照这个大小分配数组,你怎么能输入一个字符呢?我估计错误就是发生在这里的。说说你写这个程序的目的吧,你想干什么?不然没人知道要怎么改代码。
#5
天生2008-03-16 15:42
就是在进行标准终端输入时 怎么做到保证输入 一定是确定的类型 而不引起崩溃
#6
天生2008-03-16 15:45
我看了很多书 都找不到答案 郁闷
#7
flyue2008-03-16 20:34
控制台程序的输入处理确实很麻烦,还不如用Win32程序的Edit控件
#8
天生2008-03-16 20:49
谢谢楼上兄弟,改用WIN32API
#9
flyue2008-03-16 20:56
忘了告诉你,其实用MFC更简单。我看MFC就是为懒人准备的:)
#10
天生2008-03-16 21:00
现在正学习WIN32API编程 对MFC还不是很了解
1