C语言学习007:重定向标准输入和输出

  先来完成一个将输入数据转换成json格式输出的小任务

 1 #include <stdio.h>
 2
 3 int main(){
 4     float latitude;
 5     float longtitude;
 6     char info[80];
 7     int started=0;
 8     puts("data[");
 9     while(scanf("%f,%f,%79[^\n]",&latitude,&longtitude,info)==3){
10         if(started){
11             printf(",\n");
12         }
13         else{
14             started=1;
15         }
16         printf("{latitude:%f,longtitude:%f,info:‘%s‘}",latitude,longtitude,info);
17     }
18     puts("\n]");
19     return 0;
20 }

  有意思的是,我们可以直接将一个配置好的经纬度文件通过程序直接生成json文件,这是gpsdata.csv文件里的数据

42.123123,-71.321321,speed=21
41.123123,-71.421321,speed=11
43.123123,-71.621321,speed=18
44.123123,-71.321321,speed=17
45.123123,-71.321321,speed=21
42.523123,-70.321321,speed=20

  通过程序直接运行,在程序同目录中生成了output.json文件

  为什么会这样呢?

  在用scanf()从键盘读取数据、printf()向显示器写数据时,这两个函数其实并没有直接使用键盘、显示器,而是用了标准输入和标准输出。程序运行时,操作系统会创建标准的输入和输出。

  "<" 操作符重定向标准输入

  ">" 操作符重定向标准输出

时间: 2024-10-06 12:22:28

C语言学习007:重定向标准输入和输出的相关文章

输入和输出--重定向标准输入和输出

重定向标准输入和输出 Java的标准输入和输出分别通过system.in和system.out来代表,默认情况下他们分别代表键盘和显示器. 在system类中提供了3个重定向标准输入和输出的方法: setErr(PrintStream err)           重新分配"标准"错误输出流. setIn(InputStream in)              重新分配"标准"输入流. setOut(PrintStream out)         重新分配&qu

C语言学习008:标准错误

在上一节中的数据文件中(C语言学习007:重定向标准输入和输出),如果文件中的数据包含非法数据,如何让程序显示一条错误的提示消息呢?就需要用到标准错误 1 #include <stdio.h> 2 3 int main(){ 4 float latitude; 5 float longitude; 6 char info[80]; 7 int started=0; 8 puts("data["); 9 while(scanf("%f,%f,%79[^\n]&quo

重定向标准输入/输出

Java的标准输入/输出分别通过System.in和System.out来代表,默认情况下它们分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入,当程序试图通过System.out执行输出时,程序总是输出到屏幕 System类里提供三个重定向标准输入/输出的方法: static void setErr(PrintStream err):重定向"标准"错误输出流 static void setIn(InputStream in):重定向"标准

【Linxu学习007】管道和重定向

一.管道 使用管道能够很方便的实现一个程序的输出作为另外一个程序的输入.管道符号为'|',用法: COMMEND | COMMEND | COMMEND| ...... 示例: [email protected]:~$ echo "abcdefg" | tr [:lower:] [:upper:] ABCDEFG [email protected]:~$ more /etc/passwd | grep 'kdyzm' kdyzm:x:1000:1000:kdyzm,,,:/home/k

Linux标准输入、输出和错误和文件重定向(转)

标准输入.输出和错误 当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名.下面就是这些文件描述符及它们通常所对应的文件名: 文件文件描述符输入文件—标准输入0:它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出.输出文件—标准输出1:它是命令的输出,缺省是屏幕,也可以是文件.错误输出文件—标准错误2:这是命令错误的输出,缺省是屏幕,同样也可以是文件. 系统中实际上有1 2个文件描

c语言学习之结构篇代码演示样例-输入n个同学的姓名,数学英语成绩,依照平均分从低到高排序并输出

#include<stdio.h> void main(){ const int count = 5;//定义数量 struct student{ char name[80]; float math,eng; float aver; }stu[count],temp; //输入 for (int i = 0; i < count; i++){ scanf("%s%f%f", stu[i].name, &stu[i].math, &stu[i].eng)

Java重定向标准输入/输出

在System类中提供了三个重定向标准输入/输出的方法static void setErr(PrintStream err) 重定向“标准”错误输出流static void setIn(InputStream in)    重定向“标准”输入流static void setOut(PrintStream out)重定向“标准”输出流 参考 http://blog.csdn.net/zhy_cheng/article/details/7891142

c语言学习之结构篇代码示例-输入n个同学的姓名,数学英语成绩,按照平均分从低到高排序并输出

在虚拟机上测评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 因为是虚拟机上的测评,所以时间只做参考,不要太较真, 看看就好了.MySQL 工具:    1. 自带mysqlimport工具.    2. 命令行 load data infile ...    3. 利用mysql-connector-python Driver来写的脚本. PostgreSQL 工具:    1. pgloader 第三方工具.    2. 命令行 copy ... from

Java 输入/输出——重定向标准输入/输出

在System类中提供了如下三个重定向标准输入/输出方法. static void setErr?(PrintStream err) Reassigns the "standard" error output stream.(重定向"标准"错误输出流) static void setIn?(InputStream in) Reassigns the "standard" input stream.(重定向"标准"输入流) st