时间:2021-03-23 09:34:03 | 栏目:C代码 | 点击:次
写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下。方便使用
1. C++
读取文件
#include<stdio.h> #include<string.h> int main(){ const char* in_file = "input_file_name"; const char* out_file = "output_file_name"; FILE *p_in = fopen(in_file, "r"); if(!p_in){ printf("open file %s failed!!!", in_file); return -1; } FILE *p_out = fopen(out_file, "w"); if(!p_in){ printf("open file %s failed!!!", out_file); if(!p_in){ fclose(p_in); } return -1; } char buf[2048]; //按行读取文件内容 while(fgets(buf, sizeof(buf), p_in) != NULL) { //写入到文件 fwrite(buf, sizeof(char), strlen(buf), p_out); } fclose(p_in); fclose(p_out); return 0; }
读取标准输入
#include<stdio.h> int main(){ char buf[2048]; gets(buf); printf("%s\n", buf); return 0; } /// scanf 遇到空格等字符会结束 /// gets 遇到换行符结束
2. Php
读取文件
<?php $filename = "input_file_name"; $fp = fopen($filename, "r"); if(!$fp){ echo "open file $filename failed\n"; exit(1); } else{ while(!feof($fp)){ //fgets(file,length) 不指定长度默认为1024字节 $buf = fgets($fp); $buf = trim($buf); if(empty($buf)){ continue; } else{ echo $buf."\n"; } } fclose($fp); } ?>
读取标准输入
<?php $fp = fopen("/dev/stdin", "r"); while($input = fgets($fp, 10000)){ $input = trim($input); echo $input."\n"; } fclose($fp); ?>
3. Python
读取标准输入
#coding=utf-8 # 如果要在python2的py文件里面写中文,则必须要添加一行声明文件编码的注释,否则python2会默认使用ASCII编码。 # 编码申明,写在第一行就好 import sys input = sys.stdin for i in input: #i表示当前的输入行 i = i.strip() print i input.close()
4. Shell
读取文件
#!/bin/bash #读取文件, 则直接使用文件名; 读取控制台, 则使用/dev/stdin while read line do echo ${line} done < filename
读取标准输入
#!/bin/bash while read line do echo ${line} done < /dev/stdin