首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 不是超恶心的面试题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kitsudo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-11-19 22:25:11 楼主
    一个程序
    要求单一执行程序时
    输出1至100共100行数据
    同时要求
    通过管道由sort排序后保持原有顺序输出
    例如
    a.exe
    1
    2
    3
    ...
    98
    99
    100

    a.exe | sort
    1
    2
    3
    ...
    98
    99
    100

    而不是输出
    1
    11
    12
    ...
    9
    91
    92
    ...

    并由此解释一下Linux下tail的实现
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Non_Recursive
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 22:46:461楼 得分:0
    up,不懂
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhyinty
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 22:48:012楼 得分:0
    LZ好狡猾,又来了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hqin6
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 22:50:043楼 得分:0
    呵呵,有意思~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • weijieut
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 22:56:084楼 得分:0
    难道是printf("%d\n",i); 还是 printf("\n%d", i);  ?

    upup~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • test_000_001
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 22:57:565楼 得分:0
    该回复于2008-11-20 09:22:37被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • brookmill
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 23:15:106楼 得分:0
    这样好像可以,不知道是不是出题的本意
    tail不懂
    C/C++ code
    #include <stdio.h> int main() { int i; for (i=1; i<=100; i++) fprintf(stderr, "%d\n", i); return 0; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hqin6
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 23:20:057楼 得分:0
    引用 6 楼 brookmill 的回复:
    这样好像可以,不知道是不是出题的本意
    tail不懂

    C/C++ code#include <stdio.h>
    int main()
    {
        int i;
        for (i=1; i <=100; i++)
            fprintf(stderr, "%d\n", i);
        return 0;
    }


    这不错~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • brookmill
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 23:22:078楼 得分:0
    看来stderr的输出,不走管道
    C/C++ code
    #include <stdio.h> int main() { int i; for (i=1; i<=10; i++) { fprintf(stderr, "%d stderr\n", 2*i-1); fprintf(stdout, "%d stdout\n", 2*i); } return 0; }


    $ ./a.out
    1 stderr
    2 stdout
    3 stderr
    4 stdout
    5 stderr
    6 stdout
    7 stderr
    8 stdout
    9 stderr
    10 stdout
    11 stderr
    12 stdout
    13 stderr
    14 stdout
    15 stderr
    16 stdout
    17 stderr
    18 stdout
    19 stderr
    20 stdout
    $
    $ ./a.out | sort
    1 stderr
    3 stderr
    5 stderr
    7 stderr
    9 stderr
    11 stderr
    13 stderr
    15 stderr
    17 stderr
    19 stderr
    10 stdout
    12 stdout
    14 stdout
    16 stdout
    18 stdout
    20 stdout
    2 stdout
    4 stdout
    6 stdout
    8 stdout
    $
    $ ./a.out | tail -5
    1 stderr
    3 stderr
    5 stderr
    7 stderr
    9 stderr
    11 stderr
    13 stderr
    15 stderr
    17 stderr
    19 stderr
    12 stdout
    14 stdout
    16 stdout
    18 stdout
    20 stdout
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kitsudo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-19 23:46:179楼 得分:0
    引用 6 楼 brookmill 的回复:
    这样好像可以,不知道是不是出题的本意
    tail不懂

    C/C++ code#include <stdio.h>
    int main()
    {
        int i;
        for (i=1; i <=100; i++)
            fprintf(stderr, "%d\n", i);
        return 0;
    }

    明显不对啊
    老兄
    管道操作是针对标准输出的
    你用标准错误输出结果
    管道的作用跟没有起啊
    当然没有问题啦

    不信你试试交替的使用标准输出与标准错误输出
    然后用管道排序
    看看结果是不是只有标准输出的才会被接纳
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fhtingtian
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 09:29:1010楼 得分:0
    不懂,帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xianyuxiaoqiang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 09:35:4211楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ztz0223
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 09:50:5312楼 得分:0
    sort要加选项吧,但是的程序如果能够输出合适的话就应该没有问题
    tail就是取尾巴后面的几行撒
    也要实现?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cyj626
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 10:45:0513楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • icesky_ff
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 11:29:1514楼 得分:0
    关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qq675927952
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 13:04:3115楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cruxsky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 13:21:1016楼 得分:0
    有些不明白是啥意思?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • idoo2008
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 13:21:4417楼 得分:0
    第一次来。帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Wolf0403
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 13:27:2618楼 得分:0
    ryan@ryan:~/tmp$ echo -e "1\n11\n20" | sort
    1
    11
    20
    ryan@ryan:~/tmp$ echo -e "1\n20\n11" | sort
    1
    11
    20
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Wolf0403
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 13:27:5619楼 得分:0
    错了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Wolf0403
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-20 13:31:3020楼 得分:0
    printf("%2d", n);
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved