c语言怎么读一个文件的某个信息 如何用C语言读取txt文件中的数据到结构体数组中
c语言怎么读一个文件的某个信息?
#include "stdio.h"
#include "string.h"
typedef struct
{
int num
char name[10]
}data
data s[3]
void Loading()
{
int i
FILE *fp
fp=fopen(".\a.txt","r")
if(fp==NULL)
printf("Cant Open The File!
")
else
for(i=0i<3i )
{
fscanf(fp,"%d",&s[i].num)
fscanf(fp,"%s",s[i].name)
}
fclose(fp)
}
void Search(char *string)
{
int i
for(i=0i<3i )
{
if(strcmp(string,s[i].name)==0)
{
printf("%d %s
",s[i].num,s[i].name)
break
}
}
if(i==3)
printf("Not Found!
")
}
void main()
{
char temp[10]
Loading()
printf("Enter The Name That You Want To Search,Please:
")
scanf("%s",temp)
Search(temp)
}
看迟了,我是帮你解决问题的,不是发牢骚的^_^,希望可以帮e799bee5baa6e79fa5e98193e4b893e5b19e31333335343932到你,已运行过。
如何用C语言读取txt文件中的数据到结构体数组中
1、在vscode里面添加了Python文件和用于读取的文本文件。
2、然后在txt文件写上一些内容用于待会的内容读取,随便写上即可。
3、此外,我们还必须要导入os文件,这样才可调用os中的一些文件操作方法。
4、然后打开要进行读取内容的文件,并且把读取到的内容数据复制给了变量a。
5、然后把变量a打印即可把内容给展现出来,方便查阅了。
6、接着运行jy.py文件,这样就会开始读取,打印内容。
7、可以看到文件的内容真的被读取到了。
在c语言中,如何读取一个txt文件中的信息
一般来说在C语言中读取txt文件的信息有两种方法,一种是使用C语言标准文件I/O中的fopen()、fread()等等函数,一种是调用操作系统中的API函数,比如Windows上的ReadFile()、OpenFile()等等,现在操作系统一般都具备内存文件映射功能,对于大的txt文件,一般都使用这种方式操作。下面是一个使用C语言标准文件I/O操作文件的例子。
#includeFILE*stream void main(void) { long l float fp char s[81] char c stream=fopen("fscanf.out","w ") if(stream==NULL) printf("Thefilefscanf.outwasnotopened
") else { fprintf(stream,"%s%ld%f%c","hello world", 65000,3.14159,x) /*Setpointertobeginningoffile:*/ fseek(stream,0L,SEEK_SET) /*Readdatabackfromfile:*/ fscanf(stream,"%s",s) fscanf(stream,"%ld",&l) fscanf(stream,"%f",&fp) fscanf(stream,"%c",&c) /*Outputdataread:*/ printf("%s
",s) printf("%ld
",l) printf("%f
",fp) printf("%c
",c) fclose(stream) } }
用C语言 读取 txt 里面的数据
/*C语言使用文件的例子*/
#include
/*文件的访问可以使用二进制的形式访问,也
可以使用文本方式访问,在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
%d %d",num1,num2,num3)
/*检验写文件是否成功*/
if ( ferror(pFile) )
{
perror("写文件失败")
/*关闭文件后返回*/
fclose(pFile)
return
}
printf("文本文件成功写入
")
/*不要忘记关闭文件*/
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]
",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("二进制文件成功写入
")
/*不要忘记关闭文件*/
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]
",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]
",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
}
c语言怎么把数据文件中的数据读出来跟用户输入的数据进行比较?
使用for循环语句 文件操作函数即可文件中数据读取并存到数组中。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f 单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。
2、例程:
#include
int i,a[100]
int main(){
FILE * fp1 = fopen("input.txt", "r")//打开输入文件
FILE * fp2 = fopen("output.txt", "w")//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!")
rturn 0
}
for(i=0fscanf(fp1,"%d",a i)!=EOFi )//从输入文件连续读取整数到数组a
for(i--)fscanf(fp2,"%d ",a[i])//把数组a逆序写入到输出文件当中
fclose(fp1)//关闭输入文件
fclose(fp2)//关闭输出文件,相当于保存
return 0
}
c语言调试,从文本里读取信息
改好了,已经通过编译器,并且能输出结果,代码如下:
#include "stdafx.h"
#include
#include
#include
int main(int argc, char* argv[])
{
int i, j
char str1[10000]//存放被检测的字符
FILE *rfp1//一个被检测源程序
for(i = 0 i<10000 i )
str1[i] = 0
if((rfp1 = fopen("1.c", "r")) == NULL)
{
printf("Cant Open hzk16
")
exit(0)
}
if(rfp1 != NULL)
{
for(i = 0 i<10000 i )
{ // fscanf(str1[i],"%s", rfp1)
str1[i] = fgetc(rfp1)//逐个读入字符
if(str1[i] == EOF)
{
break
}
}
}
fclose(rfp1)
for(j = 0 j < 10000 && str1[j] != j )
printf("%c",str1[j])
return 0
}
c程序怎么从文件里读取信息
fscanf(fp,"%s %s %d",stu[i].name,stu[i].sex,&stu[i].num)}stu[i].num不是地址,要用取地址符&
p=(char *)malloc(30*sizeof(char))p申请的内存只是一个字符,你要输入的地址显然不止是一个字符,应该多申请点,以免你的地址过长,可以改成这样p=(char *)malloc(30*sizeof(char))