c读写文件

//如何读写文件字符,使用gets(),puts(),fgets(),fputc()函数

//gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加‘\0‘字符,和puts配合使用//从严格程度讲,gets(s)函数<scanf("%s",s),后者遇到空格会认为字符串结束//puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。

//fputs是一种函数,具有的功能是向指定的文件写入一个字符串(不自动写入字符串结束标记符‘\0’)。成功写入一个字符串后,文件的位置指针会自动后移,函数返回值为0;否则返回EOF(//符号常量,其值为-1)。

//从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋‘\0‘),如果文件中的该行,不足b//ufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets//的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror//函数来判断。

#include <stdio.h>
#include<string.h>
#include <stdlib.h>

int main()
{
FILE *fp;
char str[100];
if ((fp = fopen("al", "w")) == NULL)
{
printf("can not open file\n");
exit(0);
}
printf("input a string:");
gets(str);
printf("debug:");
puts(str);
int i=0;
while (str[i] != ‘!‘)
{
if (str[i] >= ‘a‘&&str[i] <= ‘z‘)
{
str[i] = str[i] - 32;
fputc(str[i], fp);
}
i++;
}
fclose(fp);
if ((fp = fopen("al", "r")) == NULL)
{
printf("can not open file\n");
exit(0);
}
fgets(str, strlen(str) + 1, fp);
printf("%s\n", str);
fclose(fp);
return 0;
}
时间: 2024-08-09 22:39:57

c读写文件的相关文章

Python读写文件

Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.txt')try:     all_the_text = file_object.read( )finally:     file_object.close( ) 注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法.

Verilog读写文件

在通过编写Verilog代码实现ram功能时,需要自己先计算寄存器的位数和深度再编写代码. 而如果需要在编写的ram中预置值的话,就需要使用Verilog语言编写程序读写文件,来将相应的数据赋给寄存器. 这里给出Verilog实现ram的代码: module dpram( rclk, raddr, dout, wclk, we, waddr, din ); parameter aw = 16; //address widtth parameter dw = 12; //data address

java读写文件

读文件 package tool; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStreamWriter; public class ReadFile { pu

第五篇:使用无缓冲IO函数读写文件

前言 本文介绍使用无缓冲IO函数进行文件读写. 所谓的无缓冲是指该IO函数通过调用系统调用实现,其实系统调用内部的读写实现也是使用了缓冲技术的. 读写步骤 1. 打开文件 open 函数 2. 读写文件 read write 函数 3. 修改文件指针 lseek 函数 ( 可能和 2 交替进行 ) 4. 关闭文件 close 函数 代码示例 1 // 2 // 本程序往一个文件中写入一个整型数组 3 // 然后读取这个数组并输出 4 // 5 6 #include <unistd.h> 7 #

使用FileStream对象读写文件

在项目开发中经常会涉及到对文件的读写,c# 提供了很多种方式来对文件进行读写操作,今天来说说FileStream 对象. FileStream表示在磁盘或网络路径上指向文件的流.一般操作文件都习惯使用StreamReader 和 StreamWriter,因为它们操作的是字符数据 .而FileStream 对象操作的是字节和字节数组.有些操作是必须使用FileStream 对象执行的,如随机访问文件中间某点的数据. 创建FileStream 对象有许多不同的方法,这里使用文件名和FileMode

从自动生成.h的头文件集合和类声明集合到用python读写文件

最近在用python自动生成c++的类.因为这些类会根据需求不同产生不同的类,所以需要用python自动生成.由于会产生大量的类,而且这些类是变化的.所以如果是在某个.h中要用include来加载这些类,会累死人的.所以用python来生成这些类的头文件引用和类的类名声明 先看例子,再聊python的读写文件的代码 在聊聊我的python代码 ------------------------> 好吧.上面的图就是面临的需求 下面来聊聊从网上找的读写文件的python代码吧.csdn的一个博主写的

c# 高效读写文件

一.同步读写文件(在并发情况下不会发生文件被占用异常) static void Main(string[] args) { Parallel.For(0, 10000, e => { string str = "测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试\r\n"; using (FileStream fs = new FileStream("d:\\a.txt", FileMode.Append, FileAccess.Writ

java读写文件,读超大文件

一直在处理爬虫,经常能遇到读写文件的操作,很多时候都是读写超大文件,记录如下: 一.读文件 import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;

Nodejs查找,读写文件

Nodejs查找,读写文件 (1),路径处理1.首先,我们需要注意的文件路径的规范化,nodejs给我们提供了Path模块,normolize方法能帮我们规范化路径:var path = require('path');path.normalize('/foo/bar/nor/faz/..'); -> /foo/bar/nor2.当然还有join合并路径:var path = require('path');path.join('/foo', 'bar', 'baz/asdf', 'quux',

python学习笔记5:python读写文件

python学习笔记5:python读写文件 一.文件的打开模式 1.打开文件 1) f=open('D:\\a.txt','w') 第一个参数是文件的路径,如果只写文件的名字,默认是在当前执行目录下的文件:第二个参数是文件的打开模式 这种方式打开文件,在使用完了之后一定要记得,关闭文件: f.close() 2) with open('D:\\a.txt','w') as f 这种方式打开文件,文件在使用完后会自动关闭文件,不需要close  2. 文件的打开模式 总的来说,文件的打开模式有三