字符读取函数的应用

下面的演示程序实现从/etc/passwd文件中提取用户名,打印到屏幕上并保存在copyname.txt文件中
使用的函数是getc()、putc()、putchar()

[c]
#include <stdio.h>

int main()
{
FILE *fpr, *fpw;
int c = 0, f = 0;
/* 以下打开源文件 */
if((fpr = fopen("/etc/passwd", "r")) == NULL)
{
printf("open file /etc/passwd failes.\n");
return;
}
/* 以下打开目标文件*/
if((fpw = fopen("./copyname.txt", "w")) == NULL)
{
printf("open file ./copyname.txt failed.\n");
fclose(fpr);
return;
}
while((c = getc(fpr)) != EOF)
{
/* 字符已经读取到了c */
if(f == 0)
{
if(c != ':')
putchar(putc(c, fpw));
else
f = 1;
}
else if(c == '\n')
{
f = 0;
putchar(putc(c, fpw));
}
}
fclose(fpr);
fclose(fpw);

return 0;
}
[/c]

行读写函数的应用

下面这个演示程序是按行来获取数据的

[c]
#include <stdio.h>

int main()
{
FILE *fpr, *fpw;
char buf[1024], *p1, *p2;
/* 打开源文件 */
if((fpr = fopen("/etc/passwd", "r")) == NULL)
{
printf("open /etc/passwd file failed.\n");
return;
}
/* 打开目标文件 */
if((fpw = fopen("./copynameid.txt", "w")) == NULL)
{
printf("open ./copynameid.txt failed.\n");
fclose(fpr);
return;
}

memset(buf, 0, sizeof(buf));

while(fgets(buf, sizeof(buf), fpr) != NULL)
{
/* p1指向第一个":",p2指向第二个":" */
if((p1 = strstr(buf, ":")) == NULL) break;
if((p2 = strstr(p1+1, ":")) == NULL) break;
p1++; p2++;
/* p1指向第二个域密码字段,p2指向第三个域用户ID字段 */
/* 以下代码移动字符串内容,将ID字段的内容移动到用户名字段后 */
while(*p2 != ':')
{
*p1 = *p2;
p1++; p2++;
}
*p1 = 0;
/* 屏幕输出 */
puts(buf);
/* 文件输出 */
fputs(buf, fpw);
fputs("\n", fpw);
/* 清楚内存 */
memset(buf, 0, sizeof(buf));
}
fclose(fpr);
fclose(fpw);

return 0;
}
[/c]

输出省略。这个程序很有意思的地方是在buf中利用指针直接判断并修改数据

越学越有意思呢

UC编程:字符读取与行读取的更多相关文章

  1. Java中文本文件的读取(按行读取)

    在之前的学习过程中,经常会遇到将文本文件中的数据读取到数组或其他数据结构中.每次遇到,总是在网上搜索代码解决,解决之后并没有总结复习,因此在下一次遇到同样的问题时,又重复之前的过程.这样周而复始,并没 ...

  2. 关于一些对map和整行读取文件操作

    public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...

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

    写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下.方便使用 1. C++ 读取文件 #include<stdio.h> #include<string.h> i ...

  4. C++中文件按行读取和逐词读取 backup

    http://blog.csdn.net/zhangchao3322218/article/details/7930857 #include  <iostream>#include  &l ...

  5. Python跳过第一行读取文件内容

    Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...

  6. java按行读取txt并按行写入

    IO流想必大家都很熟悉了,本次实现的需求是按行读取文件内容并且按行写入,代码如下: try { String encoding="utf-8"; //设定自己需要的字符编码集 Fi ...

  7. c++ 按行读取txt文本

    CStdioFile 类的声明保存在 afx.h 头文件中. CStdioFile 类继承自 CFile 类, CStdioFile 对象表示一个用运行时的函数 fopen 打开的 c 运行时的流式文 ...

  8. Java利用内存映射文件实现按行读取文件

    我们知道内存映射文件读取是各种读取方式中速度最快的,但是内存映射文件读取的API里没有提供按行读取的方法,需要自己实现.下面就是我利用内存映射文件实现按行读取文件的方法,如有错误之处请指出,或者有更好 ...

  9. python 按每行读取文件怎么去掉换行符

    python按每行读取文件后,会在每行末尾带上换行符,这样非常不方便后续业务处理逻辑,需要去掉每行的换行符,怎么去掉呢?看下面的案例: >>> a = "hello wor ...

随机推荐

  1. how tomcat works 札记(两)----------一个简单的servlet集装箱

    app1 (看着眼前这章建议读者,看how tomcat works 札记(一个)----------一个简单的webserver http://blog.csdn.net/dlf123321/art ...

  2. 我的2011年总结--大明zeroson程序猿一周年总结

    花絮:看到csdn举办"我的2011"年度征文活动,我恰好工作也一年多了,上个月写了篇博客,主要是我换工作方面的流水账,这篇我从主观.客观.多方位地谈谈我这一年的变化.       ...

  3. 关于Java和.NET之间的通信问题(JSON)

    前言: 最近项目在某XX领导的所谓指引下,非要转型Java,转就转吧,在转的过程前期是个痛苦期,特别.NET旧有项目和Java新项目需要通信时. 进入主题,Java和.NET之间需要通信,这时媒介很多 ...

  4. jquery初步总结

    1.$(document).ready()方法和window.onload差分法 为页元件的正确操作,我们需要把操作元件JS编写的代码$(document).ready()(Jquery)或windo ...

  5. RSA加密解密(PHP Demo)

    $private_key = '-----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDpoODVtnSztGyb//p+g/Ob36jb3jzWzS2qovOj ...

  6. Scrapy研究和探索(五岁以下儿童)——爬行自己主动多页(抢别人博客所有文章)

    首先.在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中,研究的是爬取单个网页的方法.在教程(三)(http://blo ...

  7. 【核心研究】消息队列_MessageQueue

    消息队列排队过程中的消息.这第一条消息将首先被处理.但假设消息本身指定要处理的时间.我们必须等待,直到时间的消息处理能力.新闻MessageQueue正在使用Message类的表示,队列中的邮件保存结 ...

  8. JavaScript中的分号插入机制

    原文:JavaScript中的分号插入机制 仅在}之前.一个或多个换行之后和程序输入的结尾被插入 也就是说你只能在一行.一个代码块和一段程序结束的地方省略分号. 也就是说你可以写如下代码 functi ...

  9. ArcEngine下一个TIN生成的轮廓

    太晚了,直接连接的源代码: /// <summary> /// TIN生成等高线 /// </summary> /// <param name="pInterv ...

  10. [Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现

    大家好,我是秦培,欢迎关注我的博客.我的博客地址blog.csdn.net/qinyuanpei. 今天我们来一起学习在Unity3D中怎样实现角色攀爬效果. 在RPG游戏中,某些游戏场景经常须要玩家 ...