c语言 设计一个输出stdout和stderr的程序

问题描述

c语言 设计一个输出stdout和stderr的程序
一行输入一个无符号整数,作为stdout输出。
将不符合这个形式的输入除去 并作为stderr输出。
输入例
1
2

3 4
5 6 7
8
输出例(stdout)
1
2
8
输出例(stderr)
3 4
5 6 7
不知道该怎么办。。。我们连stdout stderr是什么怎么控制都没学过
求大神解答

解决方案

楼上大神写的挺好的,但是我发现一个问题,他的程序只是形似神不似。这个要判断当前输入行是否是无符号整数而不是0-9的整数,当你输入12这个整数时他会分到err里面,其实并不是这样的。我稍微修改一下给楼主参考。

     int iszs(char a[])    {        int ck=1;        int i=0;        for(i;i<strlen(a);i++)            if(a[i]==' ')            {                ck=0;                break;            }        return ck;    };        int main()    {    char out[10][10];    char err[10][10];    char buf[10];    char str[10];    int i=0j=0m;    while(gets(buf))    {        if(iszs(buf))        {            strcpy(out[i] buf);            i++;        }else        {            strcpy(err[j] buf);            j++;        }    }    printf(""stdout:n"");    for(m=0;m<i;m++)        printf(""%sn""out[m]);    printf(""stderr:n"");    for(m=0;m<j;m++)        printf(""%sn""err[m]);        getch();        return 0;    }

解决方案二:
写了个楼主可以参考下

 #include<stdio.h>#include<string.h>#define MAX_LINE 10int main(){    char right_arr[MAX_LINE][32]wrong_arr[MAX_LINE][32];    int i flag a = 0 b = 0;    char buffer[32];    while(gets(buffer))    {        for(i = 0flag=1; i < strlen(buffer); i++)        {            if(buffer[i] <= '0' || buffer[i] >= '9')            {                flag = 0;                break;            }           }        if(flag)            strcpy(right_arr[a++] buffer);        else            strcpy(wrong_arr[b++] buffer);    }    //打印stdout    printf(""stdout:n"");    for(i = 0; i < a; i++)        printf(""%sn"" right_arr[i]);    //打印stderr    printf(""stderr:n"");    for(i = 0; i < b; i++)        printf(""%sn"" wrong_arr[i]);}

时间: 2025-01-02 13:58:35

c语言 设计一个输出stdout和stderr的程序的相关文章

c语言 设计一个找出同数值部分排列的程序

问题描述 c语言 设计一个找出同数值部分排列的程序 定义一行的整数的输入有相同连续的地方为"同数值部分排列"找出有最长的同数值部分排列,并输出排列长度及这个数字的程序.最长的同数值部分排列有两个以上的时候,输出最后那个.输入的数字用空格或者换行区别 例1输入:0 1 1 1 2 0 0输出:3 1 例2输入:1 1 1 31 2 223输出:3 2 解决方案 #include <stdio.h>int main(){ int x; int c = 0; int px = -

C语言设计一个闪闪的圣诞树_C 语言

控制台打印一个圣诞树:简简单单的C语言知识,真的很基础,小白也能看得懂哦 /******************************* 圣诞树 byC语言小白入门 *******************************/ #include<stdio.h> #include <stdlib.h> #include <time.h> #include<Windows.h> #define X 25 //画面长度 int background[20]

c语言-C语言编写一个输出的函数

问题描述 C语言编写一个输出的函数 编写一个函数,输出数组,要求通过参数指定每行输出的元素个数,以 及每个元素占有的列数. 假设自己定义一个参数为x 那么打印的时候printf(""%xd"")怎么用一个参数来满足每次打印时候 元素所占列数的不同呢 解决方案 #include <stdio.h>void display(int data[] int n int cols int w){ for (int i = 0; i < n; i++) { p

异步 非阻塞-求帮忙设计一个异步非阻塞服务器的程序

问题描述 求帮忙设计一个异步非阻塞服务器的程序 伪代码也可以,尽量使用linux下的函数.我不太明白,select到底实现的是异步还是同步,有的地方说异步,有的地方说同步,还有一种看似权威的说法是实质是同步,是一种伪异步而已.如果select算做异步的话,那么非阻塞又要如何实现呢?求大神!

代码-怎样设计一个画sin,cos图形的程序?

问题描述 怎样设计一个画sin,cos图形的程序? 这是有关java中Swing组件类和事件类怎样使用ActionEvent事件和JPanel.JBtton组件来做,它的代码是啥? 解决方案 http://zhidao.baidu.com/link?url=bW2TJfpXmEJ24zOfa1AMU3RWKBO5GMdbKoCiwcwLgcbgiN6IXJXueytATX3zotnPa2g4anlXYMddKhP1bVsqE1thT1yw4mL0Uo0NJbdt4LO 解决方案二: 楼上正解,楼

数据结构-设计一个简单的英文关键词提取程序

问题描述 设计一个简单的英文关键词提取程序 设计一个简单的英文关键词提取程序,可实现对一段英文短文中出现的频率最高的三个到五个词或短语进行提取.要求:1. 从文件中读取一篇英文短文(300词以内),并显示在屏幕上.2. 按照出现频率顺序显示三个到五个词语,并注明出现的次数 解决方案 你把这里当成可以免费帮你写作业的地方么 解决方案二: 如果按你的要求,则可以统计所有单词出现的频率,看那个出现的次数最多,就是你想要的结果. 解决方案三: string[] 数据 = { ""zero&qu

c语言-用C语言实现一个计算100以内质数的程序,要求使用递归实现

问题描述 用C语言实现一个计算100以内质数的程序,要求使用递归实现 用C语言实现一个计算100以内质数的程序,要求使用递归实现 解决方案 http://zhidao.baidu.com/link?url=QMxaTs3t-q6cRPNsugPAqUX6KEl1_Ew12ljvr8G1HJlKKJXnuaYyFDONqGFNS6w-b5dOo0eSn8i5hwn4LjE3kq

设计-c语言 一个输出出现次数最多的字母的程序

问题描述 c语言 一个输出出现次数最多的字母的程序 字母不区分大小写 输出格式:出现的次数 该字母 如果有复数个出现次数最多的字母,就按字母排列顺序输出 例 输入 One Two Buckle My Shoe 输出 3 eo 输入 Once upon a time,there lived a manwhose name wos Lip van Winkle. 输出 8 e 使用以下代码雏形 #include<stdio.h> int main(void) { int i,max=0; char

解析c中stdout与stderr容易忽视的一些细节_C 语言

先看下面一个例子a.c : 复制代码 代码如下: int main(int argc, char *argv[]){ fprintf(stdout, "normal\n"); fprintf(stderr, "bad\n"); return 0;} $ ./anormalbad$ ./a > tmp 2>&1$ cat tmpbadtmp我们看到, 重定向到一个文件后, bad 到了 normal 的前面.原因如下: 复制代码 代码如下: &qu