概述
【新人求助】关于结构体格式化输入
scanf("%d %s %s %s %d",&bookS.bookNumber,&bookS.bookName[20],&bookS.bookPM[20],&bookS.bookPress[20],&bookS.bookStatus);
fprintf(fp,"%d %s %s %s %d n",bookS.bookNumber,bookS.bookName,bookS.bookPM,bookS.bookPress,bookS.bookStatus);}
在运行后,写入的文件出现乱码
运行环境:ubuntu qtCreater
------解决方案--------------------
仅供参考//学号 姓名 电话 成绩
//01 XXX 182XXXXXXXX 88
#include
#include
#define MAXS 10000
struct ST {
int XH;
char XM[11];
char DH[13];
int CJ;
} st[MAXS];
int n,i;
char ln[80];
FILE *f;
int main() {
f=fopen("in.txt","r");
if (NULL==f) {
printf("Can not open file in.txt!n");
return 1;
}
i=0;
while (1) {
if (NULL==fgets(ln,80,f)) break;
if (4!=sscanf(ln,"%d%10s%12s%d",&st[i].XH,st[i].XM,st[i].DH,&st[i].CJ)) {
st[i].XH=0;
strcpy(st[i].XM,"Unknown");
strcpy(st[i].DH,"Unknown");
st[i].CJ=0;
printf("line %d format error:%s!n",i+1,ln);
}
i++;
if (i>=MAXS) {
printf(">%d lines Ignored.n",MAXS);
break;
}
}
fclose(f);
n=i;
for (i=0;i
printf("%5d%10s%12s%4dn",st[i].XH,st[i].XM,st[i].DH,st[i].CJ);
}
return 0;
}
//NAME: essaie bla bla
//DIMENSION: 8
//DATA
//1 14 15
//2 11 10
//3 6 4
//4 7 13
//5 9 21
//6 19 3
//7 1 5
//8 8 8
//EOF
//
// 文本文件中可能还含有其他内容,但是需要用到的内容即以上
//比如data.txt:
//NAME: essaie bla bla
//其它内容
//DIMENSION: 8
//其它内容
//DATA
//其它内容
//1 14 15
//其它内容
//2 11 10
//其它内容
//3 6 4
//其它内容
//4 7 13
//其它内容
//5 9 21
//其它内容
//6 19 3
//其它内容
//7 1 5
//其它内容
//8 8 8
//其它内容
//EOF
// 目标是要获取NAME后字串,DIMENSION后数值,以及DATA以下的数值
// 其中NAME就是随便个字句,DIMENSION是城市数量,DATA以下是城市编号,X坐标,Y坐标
// 所有的这些将赋值给一个事先定义好的结构
#include
#include
#define MAXCPL 80 //每行最大字符数
#define MAXCITY 100 //每组数据中DATA最多项数,DIMENSION的最大值
#define MAXNAMEL 32 //NAME最大长度
struct S {
char NAME[MAXNAMEL+1];
int DIMENSION;
struct D {
int NO;
int X;
int Y;
} DATA[MAXCITY];
} s;
FILE *f;
int st,n,i;
char ln[MAXCPL];
int main() {
f=fopen("data.txt","r");
if (NULL==f) {
printf("Can not open file data.txt!n");
return 1;
}
st=0;
n=0;
while (1) {
if (NULL==fgets(ln,MAXCPL,f)) break;
if (st==0) {
if (1==sscanf(ln,"NAME: %32[^n]",s.NAME)) st=1;
} else if (st==1) {
if (1==sscanf(ln,"DIMENSION: %d",&s.DIMENSION)) st=2;
最后
以上就是潇洒悟空为你收集整理的c 语言怎么输入给结构体,【新人】关于结构体格式化输入的全部内容,希望文章能够帮你解决c 语言怎么输入给结构体,【新人】关于结构体格式化输入所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复