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

 

相关文章
|
16天前
|
jenkins Shell 测试技术
|
16天前
|
安全 jenkins Java
Java、Python、C++支持jenkins和SonarQube(一)
Jenkins 是一个开源的 持续集成(CI)和持续交付(CD) 工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
73 5
|
16天前
|
jenkins Java Shell
Java、Python、C++支持jenkins和SonarQube(全集)
Jenkins 是一个开源的持续集成(CI)和持续交付(CD)工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
115 1
|
16天前
|
jenkins Java 持续交付
|
16天前
|
jenkins Java 测试技术
|
8月前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
255 12
|
12月前
|
C++ Python
探索Python与C/C++混合编程的艺术
探索Python与C/C++混合编程的艺术
274 1
|
Shell
删除常规文件及隐藏文件shell脚本
删除常规文件及隐藏文件shell脚本
131 1

推荐镜像

更多