C语言:从文本文件中读取输入数据
来源:互联网 发布:mac 无线上网卡 编辑:程序博客网 时间:2024/04/30 08:11
C语言:从文本文件中读取输入数据
标签: C语言 文本文件 输入数据
by 小威威
我们经常通过输入测试数据来调试我们程序:一般都是直接运行程序然后再人为的输入。这样做其实是非常笨的,尤其是在测试数据较多的情况下。因此,我们就想能不能将测试数据进行复制直接输入到程序中?
显然是有这种方法的。首先,我们将输入数据复制粘贴到一个新的txt文档中,然后通过程序读取文本文档中的测试数据来实现数据的输入。
这里就涉及到了fopen与fclose,fscanf与fprintf。
fopen就是在程序中打开文件,其原理就是将储存在硬盘中的文件放到内存中运行。
fclose就是在程序中关闭文件,其原理就是将内存中运行的这个文件退出。
fscanf就是将文件中的内容读入到程序中。
fprintf就是将程序中的内容输入到另一个文件中存储起来。
下面放代码:(以我以前的代码为例利用排序二叉树进行排序)
/*main.c*/#include<stdio.h>#include<stdlib.h>#include"tree.h"int main(void) { int node_num, i = 0, temp; Node *root = NULL; FILE *fp1; fp1 = fopen("1.txt", "r"); fscanf(fp1, "%d", &node_num); while (i < node_num) { fscanf(fp1, "%d", &temp); if (i == 0) root = init_root(temp); else insert_node(root, temp); i++; } traverse_tree_inorder(root); printf("\n"); recycle_nodes(root); fclose(fp1); return 0;}/*tree.h*/# include <stdlib.h># include <stdio.h>typedef struct Node { struct Node *left; struct Node *right; int value;} Node;Node* init_root(int value) { Node *root; root = malloc(sizeof(Node)); root->value = value; root->left = NULL; root->right = NULL; return root;}void insert_node(Node *p, int value) { Node *pArr; pArr = malloc(sizeof(Node)); pArr->value = value; pArr->left = NULL; pArr->right = NULL; while (p->left != pArr && p->right != pArr) { while (value > p->value) { if (p->right == NULL) { p->right = pArr; return; } else { p = p->right; } } while (value < p->value) { if (p->left == NULL) { p->left = pArr; return; } else { p = p->left; } } } return;}void traverse_tree_inorder(Node *p) { if (p == NULL) return; traverse_tree_inorder(p->left); printf("%d ", p->value); traverse_tree_inorder(p->right);}void recycle_nodes(Node *p) { if (p == NULL) return; recycle_nodes(p->left); recycle_nodes(p->right); free(p);}/*1.txt*/5 23 2 3 333 35/*输出结果*/2 3 23 35 333
这样我们就能将测试样例复制粘贴到txt中,然后通过程序读取,这样也就避免了人为输入所带来的差错,也节省了时间。当我们要将代码提交上去时,只需将代码中的FILE指针,fopen, fclose删除,将fscanf改为scanf,将fprintf改为printf。
以上内容皆为本人观点,欢迎大家提出批评和指导,我们一起探讨!
0 0
- C语言:从文本文件中读取输入数据
- C语言:从文本文件中读取输入数据(升级版)
- 从文本文件中读取数据
- 从文本文件中读取数据
- C语言从文本文件中用字符串读取一行数据,然后再依次遍历字符串将字符串中数据分配。
- C/C++从文本文件读取数据
- 从文本文件中读取数据画图
- C语言及程序设计初步例程-43 从文本文件中读入数据
- 第四周《C语言及程序设计》实践项目43 从文本文件中读入数据
- C语言初步-第43讲: 从文本文件中读入数据(成绩统计)
- C语言初步-第43讲: 从文本文件中读入数据(算工资)
- 使用ifstream::get()方法从文本文件中读取数据
- 从文本文件中读取数据排序并输出到文本
- C#从文本文件中读取数据大批量导入数据库
- C语言基础-间隔读取输入数据
- 用c语言读取文本文件
- 用C语言读取文本文件
- 从标准输入流中读取数据
- Linux cgroup机制分析之框架分析
- 使用js动态计算给文档的fopnt-size 动态赋值
- window10 远程链接 ubuntu14.04
- IOS使用AFneting进行Post访问webservice
- DRBD + Heratbeat + NFS 高可用文件共享存储
- C语言:从文本文件中读取输入数据
- Linux下的.o,.so,.a,.la文件的整理
- Exchange2013/2016创建恢复数据库及还原单用户数据
- 使用jquery实现表单点击进入、移出变色效果(二)
- 回味圣诞邮件,细品岁末精彩设计
- 多线程 java
- GCM推播訊息(notification)延遲問題
- LeetCode:Unique Paths
- XMLSPY5注册的方法