C++/Php/Python/Shell 程序按行读取文件或者控制台

简介: 写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下。方便使用 1. C++  读取文件 1 #include 2 #include 3 4 int main(){ 5 const char* in_file = "input_file_name"...

写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下。方便使用

1. C++

 读取文件

 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 int main(){
 5     const char* in_file = "input_file_name";
 6     const char* out_file = "output_file_name";
 7 
 8     FILE *p_in = fopen(in_file, "r");
 9     if(!p_in){
10         printf("open file %s failed!!!", in_file);
11         return -1;
12     }
13         
14     FILE *p_out = fopen(out_file, "w");
15     if(!p_in){
16         printf("open file %s failed!!!", out_file);
17         if(!p_in){
18             fclose(p_in);
19         }
20         return -1;
21     }
22 
23     char buf[2048];
24     //按行读取文件内容
25     while(fgets(buf, sizeof(buf), p_in) != NULL) {
26         //写入到文件
27         fwrite(buf, sizeof(char), strlen(buf), p_out);
28     }
29 
30     fclose(p_in);
31     fclose(p_out);
32     return 0;
33 }
View Code

读取标准输入

 1 #include<stdio.h>
 2 
 3 int main(){
 4     char buf[2048];
 5 
 6     gets(buf);
 7     printf("%s\n", buf);
 8 
 9     return 0;
10 }
11 
12 /// scanf 遇到空格等字符会结束
13 /// gets 遇到换行符结束
View Code

2. Php

读取文件

 1 <?php
 2 $filename = "input_file_name";
 3 
 4 $fp = fopen($filename, "r");
 5 if(!$fp){
 6     echo "open file $filename failed\n";
 7     exit(1);
 8 }
 9 else{
10     while(!feof($fp)){
11         //fgets(file,length) 不指定长度默认为1024字节
12         $buf = fgets($fp);
13 
14         $buf = trim($buf);
15         if(empty($buf)){
16             continue;
17         }
18         else{
19             echo $buf."\n";
20         }
21     }
22     fclose($fp);
23 }
24 ?>
View Code

读取标准输入 

 1 <?php
 2 $fp = fopen("/dev/stdin", "r");
 3 
 4 while($input = fgets($fp, 10000)){
 5         $input = trim($input);
 6        echo $input."\n";
 7 }
 8 
 9 fclose($fp);
10 ?>
View Code

 3. Python

读取文件

1 file = open("read.py", "r")
2 while 1:
3     line = file.readline()
4     if not line:
5         break
6     #line = line
7     line = line.strip() ##移除字符串头尾指定的字符(默认为空格)
8     print line
View Code

读取标准输入

 1 #coding=utf-8
 2 
 3 # 如果要在python2的py文件里面写中文,则必须要添加一行声明文件编码的注释,否则python2会默认使用ASCII编码。
 4 # 编码申明,写在第一行就好 
 5 import sys
 6 
 7 input = sys.stdin
 8 
 9 for i in input:
10     #i表示当前的输入行
11 
12     i = i.strip()
13     print i
14 
15 input.close()
View Code

 4. Shell

读取文件

1 #!/bin/bash
2 
3 #读取文件, 则直接使用文件名; 读取控制台, 则使用/dev/stdin
4 
5 while read line
6 do
7     echo ${line}
8 done < filename
View Code

读取标准输入

1 #!/bin/bash
2 
3 while read line
4 do
5     echo ${line}
6 done < /dev/stdin
View Code

 

相关文章
|
1天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
22 12
|
10天前
|
缓存 Shell 开发工具
[oeasy]python064_命令行工作流的总结_vim_shell_python
本文总结了命令行工作流中的关键工具和操作,包括vim、shell和Python。主要内容如下: 1. **上次回顾**:完成了输入输出的代码编写,并再次练习了vim的使用。 2. **shell基础**:介绍了shell环境及其基本命令,如`pwd`、`cd`、`ll -l`等。 3. **Python游乐场**:通过`python3`命令进入Python交互环境,可以进行简单计算和函数调用,常用函数有`help`、`ord`、`chr`等。 4. **vim编辑器**:详细讲解了vim的三种模式(正常模式、插入模式、底行命令模式)及其切换方法,以及常用的底行命令如`:w`、`:q`、`
57 15
|
11天前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
21天前
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
51 20
|
27天前
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
|
28天前
|
存储 JSON 对象存储
如何使用 Python 进行文件读写操作?
大家好,我是V哥。本文介绍Python中文件读写操作的方法,包括文件读取、写入、追加、二进制模式、JSON、CSV和Pandas模块的使用,以及对象序列化与反序列化。通过这些方法,你可以根据不同的文件类型和需求,灵活选择合适的方式进行操作。希望对正在学习Python的小伙伴们有所帮助。欢迎关注威哥爱编程,全栈路上我们并肩前行。
|
9月前
|
XML 监控 Dubbo
Dubbo03【管理控制台和监控中心搭建】,Java开发实用必备的几款插件
Dubbo03【管理控制台和监控中心搭建】,Java开发实用必备的几款插件
|
9月前
|
Java
【Java开发指南 | 第二十篇】Java流之控制台
【Java开发指南 | 第二十篇】Java流之控制台
82 2
|
9月前
|
Java
java实战项目超市管理系统控制台版
java实战项目超市管理系统控制台版
116 0
|
9月前
|
存储 Java 关系型数据库
景区特色商品管理系统【控制台+MySQL】(Java课设)
景区特色商品管理系统【控制台+MySQL】(Java课设)
131 1

热门文章

最新文章

推荐镜像

更多