找回密码
 立即注册
大科技语录:
查看: 1546|回复: 2

一个让我纠结的程序小问题

[复制链接]
发表于 2010-6-3 21:44 | 显示全部楼层 |阅读模式
本帖最后由 肆漆星 于 2010-6-4 19:16 编辑

#include<iostream.h>
#include<string.h>
void taxis(char a[][100],int n)
{
        for(int i=0;i<n-1;i++)
                for(int j=i+1;j<n;j++)
                        if(strcmp(a,a[j])>0)
                        {
                                char t[100];
                                strcpy(t,a);
                                strcpy(a,a[j]);
                                strcpy(a[j],t);
                        }
}
void main(void)
{
        int n;
        cout<<"您输入的字符串个数为:";
        cin>>n;
        char a[100][100];
/*这里如果加上“cin.get();”就对了,不然下面一行改成i<n+1也能达到同样的效果,可是为什么?*/
        for(int i=0;i<n;i++)
                cin.getline(a,100);
        taxis(a,n);
        for(i=0;i<n;i++)
                cout<<a<<'\n';
        cout<<endl;
}
发表于 2010-6-4 00:24 | 显示全部楼层
因为你输入数字,然后回车。程序的cin>>n;会把数字读入,但回车留在终端,下次你getline时,首先得到的是这个回车。因此必须用什么办法把这个回车读进来扔掉。
另:最好不要用附件提问,尤其是需要星币才能下载的附件

评分

参与人数 1 +1 收起 理由
中原 + 1 认真作答

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2010-6-4 10:00 | 显示全部楼层
懂了,原来cin.get()的是回车键,谢谢!
附件需要星币吗?抱歉,发帖时没注意
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|大科技

GMT+8.8, 2024-12-22 20:03 , Processed in 0.776132 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表