用C语言 读取 txt 里面的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言 读取 txt 里面的数据相关的知识,希望对你有一定的参考价值。
我不想用scanf 去抄 txt 里面的 一行行的数,,
于是我想请教大家,怎么用C直接读 txt 里面的数。。
比如我现在有个程序 gots() 可以把 数据:
123
321
111
110
分别转换成
001
000
010
054
但是我不想用scanf 敲,,,而直接输出txt格式的结果
我会输出txt 文件
FILE *p;
p=fopen("C:\\x.txt","w+")
printf(p," ");
就是不会调用txt!
谢谢各位高手赐教!!!
让我轻轻的告诉你,,,这个学校大一不学指针的!
我想读取的是数据,不是字符,谢谢,呵呵!
我第一眼看到你的回答,我很感动,但是, char是字符,,,
我要的int 能加减乘除的,,,我要的就是相当于scanf的功能!
帮帮我,3q 了
托你们的福,主要是后面那个哥们,谢谢了
应该用fscanf(),哈哈!
#include <stdio.h>
/*文件的访问可以使用二进制的形式访问,也
可以使用文本方式访问,在C中,是依靠打开
文件时的参数来确定的,以二进制方式访问
的文件在以记事本等方式打开时看到的可能
是乱码,具体的操作如下:*/
/*功能:以文本方式生成一个文件,将"50 100 150"等数字输出到文件中
输入:无
输出:无
返回:无
*/
void write_TXT_file(void)
/*定义想输出的文件名*/
const char * pFileName="c:\\aa.txt";
/*定义输出到文件的数据*/
int num1=50,num2=100,num3=150;
/*定义文件指针*/
FILE * pFile;
/*以文本方式打开文件用于输出*/
pFile=fopen(pFileName,"wt");
/*判断打开文件成功否*/
if ( NULL == pFile )
perror("打开文件失败");
return;
/*以文本方式输出到文件*/
fprintf(pFile,"%d\n%d %d",num1,num2,num3);
/*检验写文件是否成功*/
if ( ferror(pFile) )
perror("写文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
printf("文本文件成功写入\n");
/*不要忘记关闭文件*/
fclose(pFile);
return;
/*功能:从文本文件中将数据读出来
输入:无
输出:无
返回:无
*/
void read_TXT_file(void)
/*定义想读取的文件名*/
const char * pFileName="c:\\aa.txt";
/*定义变量接收数据*/
int num1,num2,num3;
/*定义文件指针*/
FILE * pFile;
/*以文本方式打开文件用于输入*/
pFile=fopen(pFileName,"rt");
/*判断打开文件成功否*/
if ( NULL == pFile )
perror("打开文件失败");
return;
/*以文本方式读取文件*/
fscanf(pFile,"%d%d%d",&num1,&num2,&num3);
/*检验写文件是否成功*/
if ( ferror(pFile) )
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
printf("文本方式读取到的数据为:[%d][%d][%d]\n",num1,num2,num3);
/*不要忘记关闭文件*/
fclose(pFile);
return;
/*功能:以二进制方式生成一个文件,将"50 100 150"等数字输出到文件中
输入:无
输出:无
返回:无
*/
void write_BIN_file(void)
/*定义想输出的文件名*/
const char * pFileName="c:\\aa.bin";
/*定义输出到文件的数据*/
int num1=50,num2=100,num3=150;
/*定义文件指针*/
FILE * pFile;
/*以二进制方式打开文件用于输出*/
pFile=fopen(pFileName,"wb");
/*判断打开文件成功否*/
if ( NULL == pFile )
perror("打开文件失败");
return;
/*以二进制方式输出到文件*/
/*fwrite函数可以自己查一下用法*/
fwrite(&num1,sizeof(num1),1,pFile);
/*检验写文件是否成功(ferror函数只能检查最近的一次文件操作是否成功,所以每次写入都需要判断一次)*/
if ( ferror(pFile) )
perror("写文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
fwrite(&num2,sizeof(num2),1,pFile);
/*检验写文件是否成功*/
if ( ferror(pFile) )
perror("写文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
fwrite(&num3,sizeof(num3),1,pFile);
/*检验写文件是否成功*/
if ( ferror(pFile) )
perror("写文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
printf("二进制文件成功写入\n");
/*不要忘记关闭文件*/
fclose(pFile);
return;
/*功能:从二进制文件中将数据读出来
输入:无
输出:无
返回:无
*/
void read_BIN_file(void)
/*定义想读取的文件名*/
const char * pFileName="c:\\aa.bin";
/*定义变量接收数据*/
int num1,num2,num3;
/*定义文件指针*/
FILE * pFile;
/*以二进制方式打开文件用于输入*/
pFile=fopen(pFileName,"rb");
/*判断打开文件成功否*/
if ( NULL == pFile )
perror("打开文件失败");
return;
/*以二进制方式读取文件*/
fread(&num1,sizeof(num1),1,pFile);
/*检验读文件是否成功*/
if ( ferror(pFile) )
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
/*以二进制方式读取文件*/
fread(&num2,sizeof(num2),1,pFile);
/*检验读文件是否成功*/
if ( ferror(pFile) )
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
/*以二进制方式读取文件*/
fread(&num3,sizeof(num3),1,pFile);
/*检验读文件是否成功*/
if ( ferror(pFile) )
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
printf("二进制方式读取到的数据为:[%d][%d][%d]\n",num1,num2,num3);
/*不要忘记关闭文件*/
fclose(pFile);
return;
/*功能:以二进制方式从二进制文件中只将第三个整数读出来
输入:无
输出:无
返回:无
*/
void read_BIN_file_3DNUM(void)
/*定义想读取的文件名*/
const char * pFileName="c:\\aa.bin";
/*定义变量接收数据*/
int num;
/*定义文件指针*/
FILE * pFile;
/*以二进制方式打开文件用于输入*/
pFile=fopen(pFileName,"rb");
/*判断打开文件成功否*/
if ( NULL == pFile )
perror("打开文件失败");
return;
/*移动文件的读取指针将其指向第三个整数的位置*/
/*有关fseek函数请自己去查阅其参数信息*/
fseek(pFile,2*sizeof(int),0);
/*以二进制方式读取文件*/
fread(&num,sizeof(num),1,pFile);
/*检验读文件是否成功*/
if ( ferror(pFile) )
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
printf("二进制方式读取文件中第三个整数得到的数据为:[%d]\n",num);
/*不要忘记关闭文件*/
fclose(pFile);
return;
int main(void)
/*调用写文本文件*/
write_TXT_file();
/*调用读文本文件*/
read_TXT_file();
/*调用写二进制文件*/
write_BIN_file();
/*调用二进制方式读文件*/
read_BIN_file();
/*调用二进制方式读文件,仅读取文件中第三个整数*/
read_BIN_file_3DNUM();
/*暂停程序以便看清结果*/
printf("Press any key to continue...");
fflush(stdin);
getchar();
return 0;
参考技术A File *fp;
char c;
if((fp=fopen("x.txt","w"))==NULL)
printf("The file doesn't exist,please retry");
exit(0);
while((c=fgetc(fp))!=EOF) /*这一步就是解决问题的*/
c=fgetc(fp);
接下来你就可以继续操作了
你要的是数据,你可以试以下啊,绝对可以读取数据!我以前遍完这道题就是用数据来检测的!No problem. 参考技术B int t;
int input;
for(t=fscanf(p,"%d",&input);t!=EOF;t=fscanf(p,"%d",&input))
...........
本回答被提问者采纳 参考技术C 用文件指针读入不就行了?
以上是关于用C语言 读取 txt 里面的数据的主要内容,如果未能解决你的问题,请参考以下文章