当我尝试以下列方式打印或写入数据时,它会自动将多个字符串连接成一个字符串。
以下是保存数据的结构:
typedef struct Data{
int id;
char fname[10];
char lname[11];
char address[27];
char area[18];
char city[21];
char cityCode[3];
char pinCode[5];
char contact1[13];
char contact2[13];
char email[33];
}Data;
Data d;
当我尝试以下列方式打印时
printf("\nData is as follow:\n");
printf("\nID:%d",d.id);
printf("\nfname:%s",d.fname);
printf("\nlname:%s",d.lname);
printf("\naddress:%s",d.address);
printf("\narea:%s",d.area);
printf("\nCity:%s",d.city);
printf("\nCityCode:%s",d.cityCode);
printf("\npinCode:%s",d.pinCode);
printf("\ncontact1:%s",d.contact1);
printf("\ncontact2:%s",d.contact2);
printf("\nemail:%s",d.email);
这就是我得到的
Data is as follow:
ID:1
fname:abc
lname:xyz
address: 6649 N test lane
area:Test City
City:testtest
CityCode:XYZ12345 123-456-6789789-456-6123
pinCode:12345 123-456-6789789-456-6123
contact1: 123-456-6789789-456-6123
contact2:789-456-6123
email:ttest@gmail.com
2
当我尝试使用fprintf()将其写入文件时发生了同样的事情。
1,abc,xyz 6649 N test lane,Test City,testtest,XYZ12345 123-456-6789789-456-6123,12345 123-456-6789789-456-6123, 123-456-6789789-456-6123,789-456-6123,ttest@gmail.com
2
我的主要目的是将文件上的数据写为(,),数据为
1,abc,xyz,6649 N test lane,Test City,testtest,XYZ,12345,123-456-6789,789-456-6123,ttest @ gmail.com
答案 0 :(得分:3)
我只是在这里猜测,但如果我们看一下cityCode
成员,它就是一个包含三个字符的数组。成为一个"字符串"在三个字符中,它需要四个字符的空间,以包含终止'\0'
字符。
确保所有数组都有空格,并且拥有字符串终止符。