C语言问题 怎样从一个文件中逐个读入字符(每次读入一个)

作者&投稿:齐峰 (若有异议请与网页底部的电邮联系)
如何从一个文本文件中逐个读取~

C语言问题 怎样从一个文件中逐个读入字符(每次读入一个)
怎样从一个文件中逐个读入字符(每次读入一个),再把读入的数经过加密后逐个写入到指定的文件中,加密过程不需要,读写过程的编程请各位赐教了~~高手们都来帮帮忙呀~~~~


xxy0827 | 浏览 5442 次

推荐于2016-03-24 20:43:57最佳答案
一般有两种方式
FILE*fp=fopen("文件路径名","打开方式");
文件路径可以是绝对路径,默认为相对路径
打开方式由于是读入,可以直接写"r"

方法1,

1
2
3

char ch;
while(!feof(fp))
fscanf(fp,"%c",&ch);


用fscanf()函数读入

方法2,

1
2
3

char ch;
while(!feof(fp))
ch=fgetc(fp);


用fgetc()函数读入

可以通过fscanf,从文件中依次读取数据。
当fscanf返回EOF时,表示读到文件结尾,这时停止读取即可。
以文件中存储的为空格分隔的整型字符为例,可以写作:
while(fscanf(fp,"%d",&n) != EOF)//从打开的文件指针fp指向的文件读数据,每次读一个整型,直至文件结尾。
printf("%d ", n);

charstr[1024];

inti=0;

while((str[i]=getchar())!='
')

i++;

getchar();

扩展资料

C语言读取一个文件的字符:

#include<stdio.h>

intmain(void)

{

FILE*stream;

errno_terr;

//Openforread(willfailiffile"crt_fopen_s.c"doesnotexist)

err=fopen_s(&stream,"crt_fopen_s.c","r");

if(err==0)

printf("Thefile'crt_fopen_s.c'wasopened
");

else

printf("Thefile'crt_fopen_s.c'wasnotopened
");

}



一般有两种方式

FILE*fp=fopen("文件路径名","打开方式");

文件路径可以是绝对路径,默认为相对路径

打开方式由于是读入,可以直接写"r"

 

方法1,

char ch;
while(!feof(fp))
fscanf(fp,"%c",&ch);

用fscanf()函数读入

 

方法2,

char ch;
while(!feof(fp))
ch=fgetc(fp);

用fgetc()函数读入



先打开文件,然后利用读写函数
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fp为文件型指针变量,ch 字符变量。fgetc函数带回一个字符,赋给ch。如果在执行fgetc函数度字符时遇到文件结束符,函数返回一个文件结束标志EOF(即-1)

以上适用于文本文件。需要#include "stdlib.h"


安顺市15134117689: C语言问题 怎样从一个文件中逐个读入字符(每次读入一个)
昌沈哌能: 先打开文件,然后利用读写函数 ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } fp为文件型指针变量,ch 字符变量.fgetc函数带回一个字符,赋给ch.如果在执行fgetc函数度字符时遇到文件结束符,函数返回一个文件结束标志EOF(即-1) 以上适用于文本文件.需要#include "stdlib.h"

安顺市15134117689: c语言编程问题如何逐个读取数?c语言编程问题如何逐个读取数字
昌沈哌能: 可以通过fscanf,从文件中依次读取数据.当fscanf返回EOF时,表示读到文件结尾,这时停止读取即可.以文件中存储的为空格分隔的整型字符为例,可以写作:while(fscanf(fp,"%d",&n) != EOF)//从打开的文件指针fp指向的文件读数据,每次读一个整型,直至文件结尾. printf("%d ", n);

安顺市15134117689: C语言中,急急急...有没有逐个字符读入数组的函数 -
昌沈哌能: 你直接用 fgets(FILE *fp),就可以实现啊.功能:从fp指向的文件中读取一字节代码 返值:返回读到的代码值;读到文件尾或出错为EOF(-1);你用个while循环语句,把fgets(fp)读到的结果直接赋给你的数组,直到当fgets的返回结果为EOF,退出循环.这样就能读逐个字符了,因为执行一个fgets函数,文件指针自动后移一个字节.

安顺市15134117689: C语言 怎么使用一个循环能够将一个文件夹中的文件(二进制文件)逐个打开(可以对其进行修改) -
昌沈哌能: 这个需要使用 Win32 API 函数 FindFirstFile( ) 函数可以查找到一个文件 FindNextFile( ) 可以打开下一个文件 循环调用 FindNextFile( ) 可以遍历枚举目录里面的所有文件,包括目录

安顺市15134117689: 从一个文件中读取三个数按从大到小的顺序排列,c语言 -
昌沈哌能: #include<stdio.h>#define MAX 3 int main() { int a[MAX]; FILE *fp=fopen("D:\\data.txt","r"); if(!fp) { printf("open file error\n"); return 0; } int i=0; while(!feof(fp)) { fscanf(fp,"%d",&a[i]); i++; } fclose(fp); int min,mid,max; min=a[0]<a[1]?a[0]:a[1]; ...

安顺市15134117689: 关于C语言文件读取和处理的问题,如何按行读取文件,挨个转换成double型数据,存入数组? -
昌沈哌能: 如果文件中的数据是以每行一个保存的,你的代码可以处理,但多做了不必要的操作.如果每行有多个数据,并以空白符(\t,\n,空格)分隔时,可以用fscanf(fp,"%lf",&c_number[i]);读取.

安顺市15134117689: C语言中怎么从文件中读取特定数据? -
昌沈哌能: 哥哥我想出的办法是这样的:因为兄弟文件格式是一行一行的, 且每行开头是一个关键字,然后后面是相应数据, 所以哥哥是这么想的, 比如要读"AB2345"这个关键字对应行的内容, 那首先用变量或者宏定义定义下来, 然后从文件开头...

安顺市15134117689: C语言怎么从文件中读出一组数,然后再逆序输出,不用数组用链表来操作 -
昌沈哌能: 楼上写的挺好,有点小问题,帮忙修正一下: void PrintNode(Node *node) //原函数实现,会丢失最后一个数,在循环外补上 {while( node->pNext ){printf("%d ", node->nData);node = node->pNext ; //为什么要采用递归调用呢?这样不是很好?}printf("%d ", node->nData);//输出最后一个数 }还有打开文件后,记得在返回(退出)前进行文件关闭: fclose(fp);

安顺市15134117689: C语言如何把文件中的信息导入到程序中 -
昌沈哌能: fscanf 文本方式 fread 二进制方式 看看你文件里具体存的什么方式

安顺市15134117689: 请问C语言中一次操作多个文件该如何做? -
昌沈哌能: (1) 用 system("dir /b > abc.lis"); 把文件名存入abc.lis (2)打开文件abc.lis 打开输出文件 nameout (3)从abc.lis 里读一个文件名到 namein --(FILE *fin) (4)打开 namein 文件 (5) 读和处理namein,输出部分到 nameout -- FILE *fout) (6)关掉 namein 文件(7) 转 3,循环到 6 如果abc.lis 文件读到 EOF 则 结束 (8)关掉 输出文件和 abc.lis 文件 程序结束

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网