c语言怎么把东西写到文件里,再从文件输出到屏幕上 30
前两张是我写文件和输出文件的程序,后边是打印的结果,和这个文本文件里边的内容。有没有大佬知道怎么改啊。是把一个结构体存在文件里,然后从文件输出到屏幕上。(这也是我从网上搜...
前两张是我写文件和输出文件的程序,后边是打印的结果,和这个文本文件里边的内容。有没有大佬知道怎么改啊。是把一个结构体存在文件里,然后从文件输出到屏幕上。(这也是我从网上搜着写的,还是不对,哭了
展开
3个回答
2019-02-18
展开全部
用WritePrivateproFileString( )和GetPrivateproFileString( ) 两个函数就可以了啊, 不用打开文件 , 关闭文件, 定位, 移动文件指针之类的
为防止有人说C下不能用, 特写一个简单的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <stdio.h> #include <stdlib.h> #include <windows.h> struct STRUCT { char name[20]; float chinese; float math; }; char filename[]={ "z:\\1.txt\0" }; struct STRUCT s[3]; int count=0; int main() { int i; for (i=0;i<3;i++) { printf ( "\n请输入第%d个学生信息(姓名 语文 数学)用空格间隔:\n" ,i+1); fflush (stdin); scanf ( "%s %f %f" ,s[i].name,&s[i].chinese,&s[i].math); } char temp[3]; char str[20]; WritePrivateProfileStringA( "All" , "count" , "3" ,filename); for (i=0;i<3;i++) { sprintf (temp, "%d" ,i+1); WritePrivateProfileString(temp, "name" ,s[i].name,filename); sprintf (str, "%.1f" ,s[i].chinese); WritePrivateProfileString(temp, "chinese" ,str,filename); sprintf (str, "%.1f" ,s[i].math); WritePrivateProfileString(temp, "math" ,str,filename); } return 0; } |
展开全部
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //按照结构体写入 void WriteFile(...) { int j; fp= fopen (...); for (j=0;j<n;j++) if ( fwrite (&stu, sizeof (STUDENT),1,fp)!=1) printf ( "file write error\n" ); fclose (fp); } //读文件也要按照结构体来读 void ReadFile(){ ... STUDENT stu; while ( fread (&stu, sizeof (STUDENT),1,fp)==1) printf ( "%d,%d\n" ,stu.xx,stu.xx); ... } |
展开全部
你写的是一个二进制文件,不能以文本文件的方式来读的。
要先用fread读到同样定义的STUDNT类型的结构体(或结构体数组)中,然后再用格式化输出语句进行输出结构体的每一个域。
要先用fread读到同样定义的STUDNT类型的结构体(或结构体数组)中,然后再用格式化输出语句进行输出结构体的每一个域。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询